前言
今天巡檢遇到數(shù)據(jù)庫報(bào)錯(cuò) ORA-00600
錯(cuò)誤,數(shù)據(jù)庫版本為 Oracle 11204 (x86_64) ,錯(cuò)誤日志如下:
ORA-00600: internal error code, arguments: [kjxmgmb_nreq:!bat], [17], [56], [9], [], [], [], [], [], [], [], []
關(guān)鍵詞: ORA-00600、[kjxmgmb_nreq:!bat]。
一、問題分析
1、查看錯(cuò)誤代碼
通過 Oracle oerr
查看錯(cuò)誤代碼解釋:
可以發(fā)現(xiàn),ORA-600
是 Oracle 的內(nèi)部錯(cuò)誤,無法從錯(cuò)誤代碼提示上看出什么問題!
2、抓取 trace 文件關(guān)鍵信息
通過報(bào)錯(cuò)信息,我們可以很容易的定位到 trc
中的關(guān)鍵錯(cuò)誤信息:
Error: ORA-00600 [kjxmgmb_nreq:!bat] [17] [56] [9] Error Stack: ORA-600[kjxmgmb_nreq:!bat] Main Stack: kjxmgmb_nreq_header <- kjdrpushpkey <- kjdrpkey2hv <- kjblprmexp <- kjbmprmexp <- kjbmchkretryreq <- kjmsm <- ksbrdp <- opirip <- opidrv <- sou2o <- opimai_real <- ssthrdmain <- main
并未發(fā)現(xiàn)可以判斷問題的信息。
3、查詢 MOS 文檔
通過查詢官方的 MOS 文檔,發(fā)現(xiàn)與如下文檔描述相似:
Bug 20250147 - ORA-600 [kjxmgmb_nreq:!bat] can occur in RAC crashing the instance (Doc ID 20250147.8 )
根據(jù)文檔中描述,該 bug 可能發(fā)生在 RAC 環(huán)境崩潰時(shí)。
二、解決方案
安裝 OneOffPatch
補(bǔ)丁:Patch 20250147 !
補(bǔ)丁安裝所需介質(zhì)如下:
p20250147_112040_Linux-x86-64.zip p6880880_112000_Linux-x86-64.zip
補(bǔ)丁安裝步驟
補(bǔ)丁安裝的詳細(xì)步驟可以查看補(bǔ)丁 README
文檔即可!
大致步驟分為以下三步:
1、備份 ORACLE_HOME
和 ORAINVENTORY
目錄
mkdir /backup
cd /u01/app/oracle/product/11.2.0
tar -pcf /backup/oracle_home_backup210421.tar db
cd /u01/app
tar -pcf /backup/oracle_inventory_backup210421.tar oraInventory
📢 注意: 備份前需要先完全關(guān)閉所有數(shù)據(jù)庫實(shí)例。
2、替換最新的OPATCH補(bǔ)丁包(p6880880 )
unzip -o p6880880_112040_Linux-x86-64.zip -d $ORACLE_HOME
3、解壓 20250147
補(bǔ)丁包,并安裝補(bǔ)丁
首先解壓補(bǔ)丁包:
unzip -d /soft p20250147_112040_Linux-x86-64.zip
安裝補(bǔ)丁前檢查:
cd /soft/20250147
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
關(guān)閉當(dāng)前主機(jī)所有 ORACLE_HOME
下的服務(wù)(database, ASM, listeners, nodeapps, and CRS daemons):
## Non-rac
shutdown immediate
lsnrctl stop
## rac
srvctl stop database -d orcl
srvctl stop listener
srvctl stop scan_listner
正式安裝補(bǔ)丁:
cd /soft/20250147
opatch apply
確認(rèn)是否安裝成功:
opatch lsinventory
啟動(dòng)所有ORACLE_HOME下的服務(wù)(database, ASM, listeners, nodeapps, and CRS daemons)
## 開啟數(shù)據(jù)庫實(shí)例和監(jiān)聽
## Non-rac
startup
lsnrctl start
## rac
srvctl start database -d orcl
srvctl start listener
srvctl start scan_listener
📢 注意: 需要數(shù)據(jù)庫停機(jī)進(jìn)行操作。
參考官方文章:Doc ID 20250147.8