11.2.0.4 ADG无法连接,查看数据库为关闭状态,重新启动实例,应用日志后即可正常同步数据并打开到只读模式。
查看alert日志发现有以下报错:
0RA-04021:timeout occurred while waiting to lock obiect
LGWR (ospid: 30945):terminating the instance due to error 4021
Instance terminated by LGwR, pid = 30945
在mos上查询文档Doc ID 2183882.1,文档中解释这是一个bug
【分析】
借助MOS查下ORA-04021: timeout occurred while waiting to lock object。发现文档ORA-04021: timeout occurred while waiting to lock object : DR Instance terminated by LGWR (文档 ID 2183882.1)与遇到的问题是一致的。判断理由:alter日志报错信息相同,第二,trace内容也一致。由文章得知(文档 ID 2183882.1),应该为Bug 16717701 – ADG SHOULD GET THE INSTANCE PARSE LOCK WITH A TIMEOUT或Bug 11712267 – ACTIVE DATA GUARD DATABASE HUNG ON ‘LIBRARY CACHE: MUTEX X’ WAIT EVENT。
当ADG通过日志恢复时,LGWR将实例状态对象锁定为独占模式。这样的结果是LGWR可以阻止SQL的解析,SQL的解析也能阻止LGWR。为了减少SQL解析对LGWR的影响,根据官网的solution可以将cursor_sharing设置为force(文档 ID 2183882.1)。
如果修改cursor_sharing参数后依然发生相同故障情况,可修改隐含参数。
SQL > alter system set "_adg_parselock_timeout"=500 scope=both sid='*';