Oracle Dataguard 主備庫的切換方法
一是Switchover(計劃中的切換,不會丟失數據)
二是Failover(當主庫出現故障的時候需要主備庫切換角色)
1,Switchover的切換方法
主庫端:
select switchover_status from v$database;
如果是to standby表可以正常切換.
直接執行alter database commit to switchover to physical standby;
否則執行:alter database commit to switchover to physical standby with session shutdown;
shutdown immediate;
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;
備庫端:
select switchover_status from v$database;
如果是to_primary表可以正常切換.
執行: alter database commit to switchover to primary;
否則執行: alter database commit to switchover to primary with session shutdown;
shutdown immediate;
startup;
2,Failover切換方法
(1)判斷主數據庫確實出現嚴重的硬件故障或其他原因導致主數據庫無法啟動。
(2)在物理備用數據庫上檢查是否有archive redo log gaps
SQL>SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
(3)消除archive redo log gaps
從主數據庫上或其他備份的地方把沒有傳到物理備用數據庫的archive redo log傳到物理備用數據庫上,並註冊到物理備用數據庫的controlfile中。
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE ‘archive redo log文件名稱‘;
重復2,3步驟直到V$ARCHIVE_GAP視圖無記錄存在。
(4)在物理備用數據庫上發起failover操作
SQL > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;
(5)把物理備用數據庫轉化成主用角色
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
(6)把新的主用數據庫重新啟動
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
(7)對新的主用數據庫做全備份.
Oracle Dataguard 主備庫的切換方法