DataGuard角色切换


Step 1   Verify that the primary database can be switched to the standby role.
验证主库能够切换到备用角色。
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
idle>:wq

SWITCHOVER_STATUS
--------------------
TO STANDBY

Step 2   Initiate the switchover on the primary database.
在主库上面开始切换
alter database commit to switchover to physical standby with session shutdown ;

Step 3   Shut down and then mount the former primary database.
关闭并且mount上从前的主库。

shutdown abort;
startup mount ;

Step 4   Verify that the switchover target is ready to be switched to the primary role.
验证转换目标已经准备好转换为主库角色
SWITCHOVER_STATUS
--------------------
SWITCHOVER LATENT

这里查询出来的值不为TO_PRIMARY即有点问题。
执行下一步的时候可能会出现问题。

Step 5   Switch the target physical standby database role to the primary role.
转换目标逻辑备用库角色为主库角色。

sys@DEX>  ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN
*
ERROR at line 1:
ORA-16139: media recovery required

这里提示需要介质恢复。

sys@DEX> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

sys@DEX> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
TO PRIMARY

sys@DEX> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

Database altered.

Step 6   Open the new primary database.
打开新的主库
sys@DEX> ALTER DATABASE OPEN;

Database altered.

Step 7 Verify the switch role .
验证角色转换

主库执行
sys@DEX> alter system switch logfile ;

System altered.


sys@DEX> select sequence# from v$log ;


 SEQUENCE#
----------
        40
        41
        42


sys@DEX>

standby库执行

sys@DEX> select sequence# from v$log ;

 SEQUENCE#
----------
        40
        42
        41


sys@DEX>

相关内容