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

Oracle-主备切换问题(BUG-31747989)

背景:

        用户在Oracle Rac 19.6版本通过switchover方式进行主备切换,在备切主完成之后,进行open的过程中,状态长时间无法完成疑似hang住。

问题:

​        Oracle Rac 19.6版本通过switchover方式进行主备切换,切换完成之后进行open,状态长时间无法完成疑似hang住,后台日志显示Sleep 160 seconds and then try to clear SRLs in 7 time(s)

问题分析:

        查看当前会话的等待情况,数据库的会话都被SID=1的会话所等待,会话(SID=1)当前为P00H并行恢复进程,等待事件为row cache lock,正在被SID=2440的会话所堵塞

        查看SID=2440的会话,当前为P00X并行恢复进程,等待事件为cursor:pin s wait on x,正在被会话SID=1所堵塞,两个会话出现相互等待的情况

        怀疑是并行恢复出现了bug,尝试将并行进程的初始化参数parallel_min_servers设置为0,然后重新open,问题还是继续出现

ALTER SYSTEM SET parallel_min_servers=0 SCOPE=BOTH;

        接下来尝试另一种方法,将SID=1的会话kill掉,因为从分析来看,该会话是主要的堵塞源头

​​alter system kill session '1,53726';

        会话查杀完成之后,数据库open完成,从alert日志看,当时并行恢复进程正在做的是undo initialization recovery

问题原因:

        事后,在Oracle的mos上查找相关的bug,发现了文章After Switch /Failover Primary Instance Open hangs Because Of SRL Cleanup (Doc ID 2710349.1)描述的BUG-31747989与当前的案例匹配,在Oracle19.2之后的版本,switchover/failover之后open主库hangs clearing SRL由未公开的BUG 31747989所引发        

        Oracle官方给出的解决方式有两个,一个是应用oneoff补丁31747989进行解决,这个补丁目前发现在较新的RU补丁版本已经被包含,从侧面也说明低版本RU补丁的潜在风险

        另一种方式是通过设置隐含参数_min_undosegs_for_parallel_fptr=0进行规避

​alter system set "_min_undosegs_for_parallel_fptr"=0 scope=both sid='*' 

        查看这个隐含的含义,我们可以推测隐含参数规避的方式通过禁用undo segment的首次并行恢复

NAME                                 DESCRIPTION
-------------------------------- ------------------------------------------- 
_min_undosegs_for_parallel_fptr    minimum undo segments for parallel first-pass recovery


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

相关文章:

  • 树莓派AI视觉小车--5.机器人小车超声波避障
  • “2048”游戏网页版html+css+js
  • 鸿蒙的进击之路
  • 在 PostgreSQL 中,重建索引可以通过 `REINDEX` 命令来完成
  • CNN和MobileNetV2搭建的水果识别模型
  • MongoDB Shell 基本命令(三)聚合管道
  • 论文阅读 - ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning
  • 大数据 | 实验一:大数据系统基本实验 | MapReduce 初级编程
  • JAVA经典之递归测试01-----JAVA入门基础教程
  • #详细介绍!!! 造成死锁的原因以及解决方案!
  • L2-042 老板的作息表(极短代码)
  • JavaScript【六】JavaScript中的字符串(String)
  • python+vue 在线考试系统的设计与实现
  • Quartz框架详解分析
  • 技术创业者必读:从验证想法到技术产品商业化的全方位解析
  • 算法训练Day29:491.递增子序列, 46.全排列 ,47.全排列 II
  • selenium自动化测试面试题【含答案】
  • 关于“复活节Easter”知识,你了解多少?
  • SadTalker项目上手教程
  • yolov8训练自己的数据集
  • 数据库系列之MySQL线程ID和操作系统线程ID对应关系
  • 雪花算法ID冲突问题与解决方案
  • 如何从 PowerPoint 导出高分辨率(高 dpi)幻灯片
  • Chocolatey 包管理器安装配置
  • Python 3.x教程:如何使用Python将图片转为漫画风格?
  • Linux内核源码下载方式