发现数据库告警,查看警告日志,发现如下报错
错误文件/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