前言

今天巡检遇到数据库报错 ORA-00600 错误,数据库版本为 Oracle 11204 (x86_64) ,错误日志如下:

ORA-00600: internal error code, arguments: [kjxmgmb_nreq:!bat], [17], [56], [9], [], [], [], [], [], [], [], []

关键词:ORA-00600、 [kjxmgmb_nreq:!bat]。

一、问题分析

1、通过Oracle oerr工具查看错误代码:

oerr

可以发现,ORA-600是Oracle的内部错误,无法从错误代码提示上看出什么问题。

2、抓取trace文件关键信息:

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

未发现可以判断问题的信息。

3、通过查询MOS文档,发现该错误相符合的文档:

Bug 20250147 - ORA-600 [kjxmgmb_nreq:!bat] can occur in RAC crashing the instance (Doc ID 20250147.8)

文档中描述,该 bug 可能发生在 RAC 环境崩溃时。

二、解决方案

安装OneOffPatch补丁: Patch 20250147: ORA 600 [KJXMGMB_NREQ:!BAT]

p20250147_112040_Linux-x86-64.zip

p6880880_112000_Linux-x86-64.zip

需要补丁包的可以加我或者关注微信公众号。

补丁包安装步骤:

1、备份 ORACLE_HOME 和 ORAINVENTORY 目录。

2、替换最新的OPATCH补丁包(p6880880 )。

3、解压20250147补丁包,安装补丁。

##解压补丁包
unzip -d /soft p20250147_112040_Linux-x86-64.zip

##设置环境变量
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

##安装补丁前检查
cd /soft/20250147
opatch prereq CheckConflictAgainstOHWithDetail -ph ./

##关闭当前主机所有ORACLE_HOME下的服务(database, ASM, listeners, nodeapps, and CRS daemons)

##正式安装补丁
cd /soft/20250147
opatch apply

##确认是否安装成功
opatch lsinventory

##启动所有ORACLE_HOME下的服务(database, ASM, listeners, nodeapps, and CRS daemons)

注意:需要数据库停机进行操作。

参考官方文章: Bug 20250147 - ORA-600 [kjxmgmb_nreq:!bat] can occur in RAC crashing the instance (Doc ID 20250147.8)

文章来源:https://www.modb.pro/db/70733

最后修改:2021 年 10 月 30 日
如果觉得我的文章对你有用,请随意赞赏