LGWR (ospid: 40339): terminating the instance due to error 4021
4,013 total views, 4 views today
www.dbhelp.net 十字螺丝钉的DBA日记
公司备库ADG意外宕机,alert日志显示LGWR进程终止了DB instance
1 2 3 4 |
Wed Dec 06 02:34:59 2017 Errors in file /u01/app/oracle/diag/rdbms/ivlstd3/ivlstd3/trace/ivlstd3_lgwr_40339.trc: ORA-04021: timeout occurred while waiting to lock object LGWR (ospid: 40339): terminating the instance due to error 4021 |
错误原因:
1、发生ORA-4021 错误的原因?
获取library cache lock/pin 超时
2、为什么是 LGWR 终止了db instance?
根据 《Bug 18242740 : ACTIVE STANDBY DATABASE CRASHED WITH ORA-4021》整理:
LGWR 需要获取到解析锁(parse lock)才能刷新,可能这个会话话费了大量时间解析。超过了设定时间,依然没有获取到解析锁,就发生了ORA-4021崩溃。
解决办法:
MOS上找到了相同案例的解决方案《LGWR (ospid: Xxx): Terminating The Instance Due To Error 4021 (文档 ID 2177473.1)》,BUG导致ADG宕机。设置隐含参数 _adg_parselock_timeout 可解决该bug,
1 |
ALTER SYSTEM set "_adg_parselock_timeout"=550 scope=both; |
参考资料
LGWR (ospid: Xxx): Terminating The Instance Due To Error 4021 (文档 ID 2177473.1)
CAUSE
Bug 18242740 ACTIVE STANDBY DATABASE CRASHED WITH ORA-4021 closed as duplicate of Bug 17018214 – ORA-600 [KRDRSB_END_QSCN_2]
SOLUTION
Fix is already included in 11.2.0.4 but the fix is DISABLED by default.
To enable the fix set “_adg_parselock_timeout” to the number of centi-seconds LGWR should wait before backing off and retrying the request.
Set the parameter “_adg_parselock_timeout”
On the Active Data Guard Standby set below parameter and restart standby:
ALTER SYSTEM set “_adg_parselock_timeout”=550 scope=both;
www.dbhelp.net 十字螺丝钉的DBA日记