当前位置: 首页 > ds >正文

ORA 600 [qkaQknLTPruneKaf:1] BUG 分析与处理

大家好,这里是 DBA学习之路,专注于提升数据库运维效率。

目录

  • 前言
  • 问题描述
  • 问题分析
  • 问题解决
  • 写在最后

前言

今天检查一套 Oracle 12.1 单机数据库发现 alert 日志报错 ORA-600 [qkaQknLTPruneKaf:1],本文记录一下处理过程。

问题描述

日常检查数据库,adrci 检查发现报错:

[oracle@lucifer ~]$ sqlplus -vSQL*Plus: Release 12.1.0.2.0 Productionadrci> show problem  ADR Home = /u01/app/oracle/diag/rdbms/lucifer/lucifer:
*************************************************************************
PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME                             
-------------------- ----------------------------------------------------------- -------------------- ----------------------------------------     
1                    ORA 600 [qkaQknLTPruneKaf:1]                                113105               2025-03-25 14:02:29.144000 +08:00       
2                    ORA 600 [kewuxs_1]                                          113106               2025-03-25 14:02:42.486000 +08:00       

查看 alert 日志:

ORA-00600: internal error code, arguments: [qkaQknLTPruneKaf:1], [], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kewuxs_1], [600], [ORA-00600: internal error code, arguments: [qkaQknLTPruneKaf:1], [], [], [], [], [], [], [], [], [], [], []
ORA-06512: at "SYS.DBMS_SQL", line 1707
ORA-06512: at "SYS.DBMS_FEATURE_USAGE_INTERNAL", line 312
ORA-06512: at "SYS.DBMS_FEATURE_USAGE_INTERNAL", line 522
ORA-06512: at "SYS.DBMS_FEATURE_USAGE_INTERNAL", line 694
ORA-06512: at "SYS.DBMS_FEATURE_USAGE_INTERNAL", line 791
ORA-06512: at line 1
], [], [], [], [], [], [], [], [], []

日志中可以发现数据库每天都在报错:ORA 600 [qkaQknLTPruneKaf:1],明显是不正常的现象。

问题分析

查看 alert 报错对应的 trc 文件内容:

----- Incident Context Dump -----
Address: 0x7ffc986bb400
Incident ID: 113625
Problem Key: ORA 600 [qkaQknLTPruneKaf:1]
Error: ORA-600 [qkaQknLTPruneKaf:1] [] [] [] [] [] [] [] [] [] [] []
[00]: dbgexProcessError [diag_dde]
[01]: dbgeExecuteForError [diag_dde]
[02]: dbgePostErrorKGE [diag_dde]
[03]: dbkePostKGE_kgsf [rdbms_dde]
[04]: kgeadse []
[05]: kgerinv_internal []
[06]: kgerinv []
[07]: kgeasnmierr []
[08]: qkaQknLTPruneKaf [SQL_Code_Generator]<-- Signaling
[09]: qkaQknPruneKaf [SQL_Code_Generator]
[10]: qknProjPushNode_Int [SQL_Code_Generator]
[11]: qknProjPushNode [SQL_Code_Generator]
[12]: qkeWalkAllQueryNodes [SQL_Code_Generator]
[13]: qknProjPushStmt [SQL_Code_Generator]
[14]: qkeProjPrune [SQL_Code_Generator]
[15]: qkadrv2 [SQL_Code_Generator]

该问题在 MOS 上搜索后发现是一个 BUG:

ORA-00600:[qkaQknLTPruneKaf:1] WHEN _NLJ_BATCHING_ENABLED=0 ON ORACLE 12C (Doc ID 2067672.1)

其描述与本次内容基本一致:

查看隐含参数 _NLJ_BATCHING_ENABLED 在数据库中的值:

set line2222 pages1000
col name for a40
col value for a10
col describ for a60
select x.ksppinm name, y.ksppstvl value, x.ksppdesc describ
from sys.x$ksppi x, sys.x$ksppcv y
where x.inst_id = userenv ('instance')
and y.inst_id = userenv ('instance')
and x.indx = y.indx
and x.ksppinm = '_nlj_batching_enabled';NAME                                     VALUE      DESCRIB
---------------------------------------- ---------- ------------------------------------------------------------
_nlj_batching_enabled                    0          enable batching of the RHS IO in NLJ

确实值被设置为 0,与该 BUG 现象完全一致,根据 MOS 建议有两种解决方案:

这个问题 Oracle 官方提供了两种解决方案:

  1. 打补丁 26153372(需要停机)
  2. 修改隐含参数 _nlj_batching_enabled=1(在线修改)

如果停机时间充足的情况下,还是比较建议打补丁。

问题解决

打补丁修复,首先检查 OPatch 是否符合要求:

[oracle@lucifer ~]$ cd $ORACLE_HOME
[oracle@lucifer dbhome_1]$ cd OPatch/
[oracle@lucifer OPatch]$ ./opatch version
OPatch Version: 12.1.0.1.3OPatch succeeded.

补丁 README 需要 opatch 版本为:12.1.0.1.4 or the latest version,这里 12.1.0.2 版本下载 12CR2 版本的 OPatch 即可:

OPatch - 可以在什么位置找到最新版本的 OPatch(6880880)?[视频] (Doc ID 1525335.1)

更新 OPatch 版本:

[root@lucifer u01]# chown oracle:oinstall /home/oracle/p6880880_122010_Linux-x86-64.zip 
[oracle@lucifer ~]$ unzip -qo p6880880_122010_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@lucifer ~]$ cd $ORACLE_HOME/OPatch
[oracle@lucifer OPatch]$ ./opatch version
OPatch Version: 12.2.0.1.45OPatch succeeded.

解压补丁:

[root@lucifer ~]# chown oracle:oinstall /home/oracle/p26153372_121020_Linux-x86-64.zip
[oracle@lucifer ~]$ unzip -q p26153372_121020_Linux-x86-64.zip 

执行安装前检查:

[oracle@lucifer ~]$ cd 26153372/
[oracle@lucifer 26153372]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.45
Copyright (c) 2025, Oracle Corporation.  All rights reserved.PREREQ sessionOracle Home       : /u01/app/oracle/product/12.1.0.2/dbhome_1
Central Inventory : /u01/app/oraInventoryfrom           : /u01/app/oracle/product/12.1.0.2/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.45
OUI version       : 12.1.0.2.0
Log file location : /u01/app/oracle/product/12.1.0.2/dbhome_1/cfgtoollogs/opatch/opatch2025-03-26_15-12-18PM_1.logInvoking prereq "checkconflictagainstohwithdetail"Prereq "checkConflictAgainstOHWithDetail" passed.OPatch succeeded.

关闭 oracle 相关资源:

## 关闭监听
[oracle@lucifer ~]$ lsnrctl stop## 关闭数据库
SQL> shu immediate

正式安装补丁:

[oracle@lucifer 26153372]$ $ORACLE_HOME/OPatch/opatch apply

安装完成后检查补丁:

$ORACLE_HOME/OPatch/opatch lspatches

关闭 oracle 相关资源:

## 关闭监听
[oracle@lucifer ~]$ lsnrctl start## 打开数据库
SQL> startup

后续检查是否还会报错 ORA-600 即可。

写在最后

既然 BUG 难以避免,做好备份尤为重要。

http://www.xdnf.cn/news/1162.html

相关文章:

  • RSGISLib:一款功能强大的GIS与RS数据处理Python工具包
  • 【深度学习新浪潮】新视角生成的研究进展调研报告(2025年4月)
  • 具身智能的理论基础
  • 2025年五大ETL数据集成工具推荐
  • MongoDB索引
  • 智能座舱测试内容与步骤
  • 影刀RPA怎么和AI结合,制作自动采集小红书爆款文章+自动用AI改写标题、内容+用AI文生图生成发文图片+自动在小红书上发布文章
  • PyTorch 多 GPU 入门:深入解析 nn.DataParallel 的工作原理与局限
  • 基于贝叶斯优化的Transformer多输入单输出回归预测模型Bayes-Transformer【MATLAB】
  • 三网通电玩城平台系统结构与源码工程详解(五):客户端热更机制与多端资源分发流程
  • AI 技术发展:从起源到未来的深度剖析
  • 电容加速电路!
  • 二、Python编程基础02
  • 【机器学习-线性回归-2】理解线性回归中的连续值与离散值
  • Spring XML 配置
  • Kotlin集合全解析:List和Map高频操作手册
  • LM35 温度传感器介绍
  • 学习前端(前端技术更新较快,需持续关注技术更新)
  • 深入探讨:如何完美完成标签分类任务(数据治理中分类分级的分类思考)
  • 短信验证码安全实战:三网API+多语言适配开发指南
  • 网络原理 - 4(TCP - 1)
  • 短视频+直播商城系统源码全解析:音视频流、商品组件逻辑剖析
  • 【Linux】46.网络基础(3.3)
  • 何东山团队提到的“真正真空”(zero-point-free vacuum)
  • 3.1goweb框架gin下
  • 中文通用embedding:BGE
  • 使用Spark-TTS-0.5B模型,文本合成语音
  • HCIP(综合实验2)
  • mockMvc构建web单元测试学习笔记
  • Unity-GC详解