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

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

相关文章:

  • [C语言笔记]08、函数
  • 云服务器新手配置内网穿透服务(frp)
  • Java 方法引用(Method Reference)从入门到精通
  • 工作记录 2017-01-12
  • vue3 + css 列表无限循环滚动+鼠标移入停止滚动+移出继续滚动
  • 开源:LMDB 操作工具:lmcmd
  • 【万字总结】构建现代Web应用的全方位性能优化体系学习指南(一)
  • 基于Hadoop的城市道路交通数据的可视化分析-Flask
  • SAP ABAP BDC 录屏开发
  • spring boot实现程序运行过程中数据源动态切换
  • STM32配套程序接线图
  • WPF程序使用AutoUpdate实现自动更新
  • 重学vue3(二):vue3生命周期(包含父与子)
  • 专家系统如何运用谓词逻辑进行更复杂的推理
  • 模版题目的集合
  • maven--依赖的搜索顺序
  • 游戏引擎学习第158天
  • MySQL(第四周)
  • 整本书测试与巩固_《C++并发编程实战》笔记
  • C# 使用Markdown2Pdf把md文件转换为pdf文件
  • 美国外贸网站建设/搜索引擎优化的常用方法
  • 做美工参考网站/企业线上培训课程
  • 企业网站管理系统项目文档/青岛seo博客
  • 怎么看网站有没有做地图/网络营销试卷
  • 做网站得花多少钱/网站推广入口
  • 武汉网站关键词优化/一站式营销平台