Behavior of Active Dataguard(ADG) When Apply Node Aborts/Crash (文档 ID 1613719.1)

来源:互联网 发布:蚌埠巨人网络 编辑:程序博客网 时间:2024/05/16 17:26
 z


转到底部转到底部

In this Document

Symptoms Cause Solution References


APPLIES TO:

Oracle Database - Enterprise Edition - Version 11.1.0.6 to 12.1.0.1 [Release 11.1 to 12.1]
Information in this document applies to any platform.

SYMPTOMS

In RAC Active Dataguard if apply instance crashes all the other instance transitioned from read only to mount mode. 

CAUSE

 This behaviour is explained in Note 1357597.1 and Bug 12946790 - APPLY INSTANCE CRASH IN ACTIVE DATAGUARD TRANSITIONS CLOSES OPEN STANDBY INSTANC 

SOLUTION

EXPLANATION 
--------------

Before this feature (prior to 12.1), when the ADG apply instance crashed in the middle of applying changes (standby media recovery session is on-going), all remaining open instances will be closed.  

But from 12.1 when the apply instance crashed in the middle of applying changes, one of the remaining open instances will be automatically posted to do "ADG instance recovery", after the ADG instance recovery.We can see this, ADG instance recovery by checking the alert log, for the messages like "Beginning ADG Instance Recovery" and "Completed ADG Instance Recovery". If DG broker is enabled then Broker will start the MRP on any of the surviving instances.

Please note that the new feature is enabled by default in 12.1. We backported it to 11.2.0.4, you can enable it on 11.2.0.4 by setting "_adg_instance_recovery=TRUE".  
The default behaviour on 11.2.0.4 is to close all remaining open instances.

Test case
------------

I have 2 node primary and 3 node physical standby(instance number 2,4 and 5).

MRP running on instance 2 and other instances are in open read only.

1. On instance 2,


SQL>  select d.open_mode,i.instance_number from v$database d, v$instance i;

OPEN_MODE            INSTANCE_NUMBER
--------------------  ---------------
READ ONLY WITH APPLY                        2

SQL> select process,status,sequence#,thread#  from v$managed_standby where process like '%MRP%';


PROCESS   STATUS        SEQUENCE#    THREAD#
--------- ------------ ---------- ----------
MRP0      WAIT_FOR_LOG         22          1

SQL> show parameter _adg

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_adg_instance_recovery               boolean     TRUE


2. On instance 4,

SQL>  select process,status,sequence#,thread#  from v$managed_standby where process like '%MRP%';

no rows selected

SQL> show parameter _adg

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_adg_instance_recovery               boolean     TRUE


3. Shut abort instance 2.

SQL> shut abort
ORACLE instance shut down.
SQL> exit


4. Instance 4 still open_read only.

SQL>  select d.open_mode,i.instance_number from v$database d, v$instance i;

OPEN_MODE            INSTANCE_NUMBER
-------------------- ---------------
READ ONLY                          4

 

NOTE :

1. As said before if DG broker configured then Broker will start MRP on any one of the available instances.

2. If you want to use ADG instance recovery feature on 11.2.0.4 (including 11.2.0.4 BP or PSUs), please make sure the following patches for following fixes are present. The ADG instance recovery feature is not usable without those fixes.
- Bug fix for 18331944.
- Bug fix for 19516448.



这篇文章就是说在11.2版本dg环境备库为rac的情况下,如果备库rac中redo应用的节点挂掉,那么备库其他处于read only

模式的点会自动变为mount状态。

解决方法是在备库rac中更改参数_adg_instance_recovery为true,这个值默认为空。

0 0
原创粉丝点击