记一次故障分析

操作系统版本:red6.7
数据库版本:Oracle 12.2.0.1
故障现象:大量的enq: CT - CTWR process start/stop等待事件,数据库hang死

1、查找阻塞源头

enq: CT - CTWR process start/stop导致数据库实例hang死

从图中可以看出出现问题的时间点大概在2019-11-13 01:03:23之前。阻塞源头为会话:3057,对应的等待事件为:row cache lock
enq: CT - CTWR process start/stop导致数据库实例hang死
但是二节点的历史活动会话信息因节点hang住,没有保存下来,所以从dba_hist_active_sess_history的信息,不可靠。

enq: CT - CTWR process start/stop导致数据库实例hang死
因为二节点的历史活动信息没有保存下来,从数据库中无法查到最终阻塞者,上述结果最终阻塞者不准确。需要借助trace文件分析。

2、Trace文件分析

enq: CT - CTWR process start/stop导致数据库实例hang死

从amrdb2节点的trace文件分析来看2019-11-13 00:25:34就已经出现了问题,2019-11-13 08:52结束。被阻塞的会话的等待事件为:enq: CT - CTWR process start/stop。

enq: CT - CTWR process start/stop导致数据库实例hang死

会话ID:146(oracle的ctwr进程,负责oracle数据块变更的跟踪,可以加快增量备份速度),阻塞了大量会话。参考Oracle官方文档:CTWR blocking either DBWR, CKPT or LGWR and causing DB hang (Doc ID 2297251.1),当系统处于非常高的负载时,ctwr进程有可能会hang住,会阻塞像DBWR、CKPT、LGWRj进程的写操作,最终数据库实例hang住,在集群状态下,有可能导致整个集群hang住。

参考解决方法

根据MOS文档建议,修改_bct_buffer_allocation_size、_bct_buffer_allocation_max 调整到一个合适的值

相关文章:

  • 2021-05-14
  • 2021-12-13
  • 2022-12-23
  • 2022-02-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-18
  • 2021-06-28
  • 2021-11-25
  • 2022-01-02
  • 2022-12-23
  • 2021-12-31
相关资源
相似解决方案