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

ORACLE 19.8版本遭遇ORA-600 [kqrHashTableRemove: X lock].宕机的问题分析

客户反馈单机环境的一个数据库半夜突然宕机了,这是一个比较重要的系统;接到通知后分析对应日志,发现ALERT日志中有明显报错:ORA-600 [kqrHashTableRemove: X lock]. 

600报错我简单的分为2类,一类不会导致宕机,一类导致宕机,这次的明显比较运气差。。

按600报错查询MOS文档,很快匹配到BUG: Bug 30417732 - Instance Crash After Hitting ORA-00600 [kqrHashTableRemove: X lock] (Doc ID 30417732.8)
Instance Crashed After ORA-00600 [kqrHashTableRemove: X lock] Error (Doc ID 2656030.1)

查看BUG描述及解决办法:

APPLIES TO:
Oracle Database - Enterprise Edition - Version 19.3.0.0.0 to 19.8.0.0.0 [Release 19]
Information in this document applies to any platform.
SYMPTOMS
• Instance was terminated after error ORA-600 [kqrHashTableRemove: X lock].
2019-10-02T15:11:27.979548+08:00
ORA-00600: internal error code, arguments: [kqrHashTableRemove: X lock], [0x1DEDE1F28], [], [], [], [],
[], [], [], [], [], []
Use ADRCI or Support Workbench to package the incident.
... ...
2019-10-02T15:11:45.764798+08:00
System state dump requested by (instance=1, osid=##### (DBRM)),
summary=[abnormal instance termination].
System State dumped to trace file
<system state dump>.trc
2019-10-02T15:11:49.138344+08:00
Instance terminated by USER, pid = #####
• Stack Trace shows as following:
 kqrHashTableRemove <- kqrfrpo <- kghfreup <- kgh_free_obj <- kgh_free_single_object
 <- kgh_free_old <- ksm_free_old <- ksm_spmemrm_bg <- kskprememrmact <- kskparamread
 <- kskdbrmtoutact <- ksb_act_run_int <- ksb_act_run <- ksbcti <- ksbabs <-ksbrdp <- opirip
 <- opidrv <- sou2o <- opimai_real <- ssthrdmain <- main
CHANGES
CAUSE
This problem is caused by unpublished Bug 30417732, that causes internal lock structure corrupted and may cause the instance
being crashed when a fatal background process do cleanup process.
SOLUTION
Apply the patch of Bug 30417732 or DBRU 19.9 which includes the fix of Bug 30417732.
REFERENCES
NOTE:30417732.8 - Bug 30417732 - Instance Crash After Hitting ORA-00600 [kqrHashTableRemove: X lock]

那么哪个BUG修复了此BUG呢?答案是19.9,就比现在的19.8多一个版本。

当天晚上申请停机窗口,安装了19.25版本补丁后,正常运行了近3个月,目前很稳定。

Description
In rare concurrent scenario, the PO object lock can be corrupted since the
lock structure is being modified after dropping PO mutex and the error
ORA-600[KQRHASHTABLEREMOVE: X LOCK] might be seen. This was leading to
the instance being crashed as a fatal background process was raising an assert
during the cleanup process.
Call stack for ORA-00600 will likely contain:
... kqrHashTableRemove kqrfrpo kghfreup kgh_free_obj ...
REDISCOVERY INFORMATION:
If there are ORA-600 errors for "kqrHashTableRemove: X lock" with the incident
trace indicating a corrupted PO object.
Workaround
NONE
Please not


http://www.kler.cn/a/586196.html

相关文章:

  • CSS:不设定高度的情况,如何让flex下的两个元素的高度一致
  • 历次科技泡沫对人工智能发展的启示与规避措施
  • Python----计算机视觉处理(opencv:图片灰度化)
  • Unity屏幕适配——立项时设置
  • Python使用FastAPI结合Word2vec来向量化200维的语言向量数值
  • 缓存使用的具体场景有哪些?缓存的一致性问题如何解决?缓存使用常见问题有哪些?
  • 蓝思科技冲刺港股上市,双重上市的意欲何为?
  • TI的Doppler-Azimuth架构(TI文档)
  • 山东省新一代信息技术创新应用大赛-计算机网络管理赛项(样题)
  • LSTM方法实践——基于LSTM的汽车销量时序建模与预测分析
  • 华为OD机试-测试用例执行计划(Java 2024 D卷 100分)
  • MIFNet (论文阅读笔记)
  • 【实战篇】MySQL 时间字段的处理
  • java学习笔记1
  • 【eNSP实战】三层交换机使用ACL实现网络安全
  • C++中的单例模式及具体应用示例
  • 阿里云dataworks入门操作
  • Go语言单元测试和基准测试
  • 一个网络安全产品设计文档
  • 「Unity3D」UGUI运行时设置元素的锚点Anchor,维持元素Rect的显示不变,即待在原处