--自主要資料庫(LOCALDB)切換至異地Data Guard資料庫(DGDR),切換前確認事項
--在主要資料庫(LOCALDB)
SQL> select switchover_status from v$database;
--SWITCHOVER_STATUS 狀態須為SESSION ACTIVE或TO STANDBY
--在備援資料庫(DGDR)
SQL> SELECT sequence#, first_time, next_time, applied FROM v$archived_log ORDERBY sequence#;
--APPLIED需皆為YES,否則代表有資料遺失的問題
SEQUENCE# FIRST_TIME NEXT_TIME APPLIED
---------- -------------------------- -------------------------- ---------
18 31-JUL-2014 10:02:36 31-JUL-2014 10:14:27 YES
19 31-JUL-2014 10:14:27 31-JUL-2014 10:18:25 YES
20 31-JUL-2014 10:18:25 31-JUL-2014 10:40:37 YES
21 31-JUL-2014 10:40:37 31-JUL-2014 10:56:01 YES
--切換程序
--在主要資料庫(LOCALDB),將主要資料庫(LOCALDB)轉變為可切換狀態
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
--在異地資料庫(DGDR),將異地資料庫(DGDR)轉為主要資料庫
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
--在原主要資料庫(LOCALDB)
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=DEFER SCOPE=BOTH;
--在原異地異地資料庫(DGDR)
SQL> RECOVER MANAGED STANDBY DATABASE CANCEL;
--P.S. 此動作會報錯,原因是ORACLE會自動做掉
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=ENABLE SCOPE=BOTH;
SQL> ALTER SYSTEM SWITCH LOGFILE;
--P.S. 檢查archive log是否自動傳輸
--在原主要資料庫(LOCALDB)
SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT;
--P.S. 清除原有的LOG訊息
--在原異地異地資料庫(DGDR)
SQL> ALTER SYSTEM SWITCH LOGFILE;
--在原主要資料庫(LOCALDB)
SQL> ARCHIVE LOG LIST;
--在本地Data Guard資料庫(DGLOCAL)
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE recover managed standby database disconnect from session;
第一篇 本地資料庫建置
第二篇 本地Data Guard建置
第三篇 異地Data Guard建置
第四篇 驗證DATA GUARD
沒有留言:
張貼留言