
ADG备库异常关闭
terminating the instance due to error 4021


分析处理过程
1、检查ORACLE日志,出现了ORA-04021、LGWR中止实例的报错
System State dumped to trace file u01/app/oracle/diag/rdbms/hydeepdg01/HYDEE/trace/HYDEE_ora_78884.trc
2018-09-28 10:28:13.883000 +08:00
Errors in file u01/app/oracle/diag/rdbms/hydeepdg01/HYDEE/trace/HYDEE_ora_78884.trc:
2018-09-28 10:30:16.372000 +08:00
Errors in file /u01/app/oracle/diag/rdbms/hydeepdg01/HYDEE/trace/HYDEE_lgwr_73182.trc:
ORA-04021: timeout occurred while waiting to lock object
LGWR (ospid: 73182): terminating the instance due to error 4021
opiodr aborting process unknown ospid (74264) as a result of ORA-1092
System state dump requested by (instance=1, osid=73182 (LGWR)), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/hydeepdg01/HYDEE/trace/HYDEE_diag_73137_20180928103017.trc
2018-09-28 10:30:17.897000 +08:00
Dumping diagnostic data in directory=[cdmp_20180928103017], requested by (instance=1, osid=73182 (LGWR)), summary=[abnormal instance termination].
Instance terminated by LGWR, pid = 73182
2、检查对应的TRC文件,出现了library cache lock的等待事件(在Oracle数据库中,如果运行一个SQL语句,首先需要将它们加载到Shared Pool的Library Cache中,而这些对象也称之为Library Cache Object。执行或者修改这些Library Cache Object时,这个LibraryCache Object会获得一个Library Cache Lock。Library Cache Lock是一种DDL锁,是Parse锁,维持着对象间的依赖关系。)
[oracle@xfrdbserver02 HYDEE]$ more /u01/app/oracle/diag/rdbms/hydeepdg01/HYDEE/trace/HYDEE_ora_78884.trc
...
service name: SYS$BACKGROUND
Current Wait Stack:
0: waiting for 'library cache lock'
handle address=0x25bff6e5f0, lock address=0x25bff9b5a8, 100*mode+namespace=0x1004a0003
wait_id=5270 seq_num=5271 snap_id=1
wait times: snap=12 min 48 sec, exc=12 min 48 sec, total=12 min 48 sec
wait times: max=15 min 0 sec, heur=12 min 48 sec
wait counts: calls=257 os=257
in_wait=1 iflags=0x15a2
There is at least one session blocking this session.
Dumping 1 direct blocker(s):
inst: 1, sid: 1659, ser: 3
Dumping final blocker:
inst: 1, sid: 1659, ser: 3
There are 2 sessions blocked by this session.
Dumping one waiter:
inst: 1, sid: 1623, ser: 3
wait event: 'library cache lock'
p1: 'handle address'=0x25bff6e5f0
p2: 'lock address'=0x255fc6b350
p3: '100*mode+namespace'=0x1004a0002
row_wait_obj#: 101081, block#: 157451, row#: 0, file# 8
min_blocked_time: 485 secs, waiter_cache_ver: 580
Wait State:
fixed_waits=0 flags=0x22 boundary=(nil)/-1
...
3、从MOS(文档 ID 2177473.1)了解到,Bug 18242740与其非常吻合,从trc文件看到library cache lock的等待事件,LGWR 4021错误,等待锁对象超时。
解决方案
修改隐含参数,设置LGWR在退出并重试请求之前应等待的厘秒数
ALTER SYSTEM set "_adg_parselock_timeout"=550 scope=both;
重启备库
好好学习,天天向上!





