ora - 04021导致oracle11gADG备库宕机问题处理

  

发现数据库告警,查看警告日志,发现如下报错
错误文件/u01/app/oracle/诊断接头/rdbms/orcl/orcl1/跟踪/orcl1_lgwr_26383。委员会:
ora - 04021:等待锁对象时发生超时
LGWR (ospid: 26383):终止实例由于错误4021
太阳2018年3月25日03:29:07
系统状态转储要求(例如=1,osid=26383 (LGWR)),总结=(实例异常终止)。
系统状态被跟踪文件/u01/app/oracle/诊断接头/rdbms/orcl orcl1/跟踪/orcle1_diag_26321_20180325032907。委员会
实例被LGWR终止,pid=26383
太阳2018年3月25日03:29:20
从ORACLE实例(正常)

  

先处理DG备库问题,查看状态发现库是山状态,先将数据库启动。
完成;改变数据库开放;
完成改变当前日志文件断开数据库恢复管理备用数据库使用;
完成从v $数据库;选择open_mode

  

OPEN_MODE

  

阅读只有适用

  

再查看问题,金属氧化物半导体对该问题解释如下:
适用于:

  

Oracle数据库- Enterprise Edition版本11.2.0.3后来
本文档中的信息适用于任何平台。

症状   

数据库崩溃博士以下错误. .

  

客户地址:(地址=(协议(tcp)(主机=XX.XXX.XXX.XX)(端口=54537))
警告:入站连接超时(ora - 3136)
结婚2016年7月13日13:43:24
错误文件/u01/app/oracle/诊断接头/rdbms/rxeprr_dr/RXEPRR1/跟踪/RXEPRR1_lgwr_31312。委员会:
ora - 04021:等待锁对象时发生超时
LGWR (ospid: 31312):终止实例由于错误4021
结婚2016年7月13日13:43:24
系统状态转储要求(例如=1,osid=31312 (LGWR)),总结=(实例异常终止)。
系统状态被跟踪文件/u01/app/oracle/诊断接头/rdbms/rxeprr_dr RXEPRR1/跟踪/RXEPRR1_diag_31221。委员会
结婚2016年7月13日13:43:25
许可高水标=318
实例终止由LGWR pid=31312
用户(ospid: 20898):终止实例
实例被用户终止,pid=20898
结婚2016年7月13日13:43:39
从ORACLE实例(正常)

  

变化   

没有变化   

原因   

错误16717701 - ADG应该得到的实例解析锁超时

  

错误11712267 -活动数据警卫队数据库挂在“库缓存:互斥X”等事件

  

LGWR跟踪文件(RXEPRR1_lgwr_31312.trc)

  

<强> 2016-07-13 13:43:24.498
会话ID: (6709.1) 2016-07-13 13:43:24.498
<强> 客户ID: () 2016-07-13 13:43:24.498
服务名称:(SYS $背景)2016-07-13 13:43:24.498
<强> 模块名称:()2016-07-13 13:43:24.498
动作名称:()2016-07-13 13:43:24.498

  

后台进程中发现错误4021
ora - 04021:等待锁对象时发生超时
kjzduptcctx:通知诊断接头为危机事件
- - - - - -删节调用堆栈跟踪- - - - - -
ksedsts () + 1296 & lt; -kjzdicrshnfy () + 364 & lt; -ksuitm () + 1688 & lt; -ksbrdp () + 4296 & lt; -opirip () + 1680 & lt; -opidrv () + 748 & lt; -sou2o () + 88 & lt; -opimai_real () + 276 & lt; -ssthrdmain () + 316 & lt;小镇()+ 316 & lt;地方()+ 380
结束- - - - - -删节调用堆栈跟踪- - - - - -

  

解决方案   

问题匹配错误11712267和错误11712267

  

自两个错误匹配的情况下,

  

你可以试着与选项(1)。根据错误11712267

  

改变cursor_sharing力活跃dataguard (ADG)。

  

监视环境。

  

如果它再次崩溃然后选项(2)
选项(2):

  

按错误描述   

LGWR可以请求DBINSTANCE锁定X模式没有任何超时从而导致挂起/僵局。

  

修复都已经包含在11.2.0.4但是方法默认情况下是禁用的。
==比;使修复一个设置==比;“_adg_parselock_timeout"比;centi-seconds==祝辞的数量;LGWR之前应该等待后退并重试请求。

  

值应该在厘秒。==比;我真的不认为有任何困难的固定规则——默认值(0)它不会超时。
一个值代表几秒钟似乎是合理的——如果LGWR一直停留5秒钟等待它似乎是合理的猜测不会锁。

  

参数只是原因中止当前尝试并重试,如果你想玩安全可以从一个更高的价值下降后开始。
更高的价值只会意味着更多的会话了更长时间的僵局的情况。
500似乎是合理的,但我没有数据基地。

  

应该有一个统计“ADG parselock X attempts"如果它被设置过小,价值可能会增加很多由于超时并重新尝试。

  

这是一个动态参数   

选项(1)。

  

改变cursor_sharing力ADG

  

如果问题又出现,遵循下面的选项(2)

  

请设置“_adg_parselock_timeout"500==在

  

SQL比;改变系统设置“_adg_parselock_timeout"=500范围=两sid=?’;

  null

ora - 04021导致oracle11gADG备库宕机问题处理