驗證 Data Guard 部署作業
設定 Data Guard 仲介服務後,您需要驗證重做資料是否已從主要資料庫複製,並套用至待命資料庫。您可以使用下列程序,在主要資料庫和待命資料庫中查看 Data Guard 狀態。
本指南中會使用以下範例:
| 資料庫專屬名稱 | 伺服器主機名稱 | RAC 執行個體名稱 | 角色 | 
|---|---|---|---|
| DBDG_SITE1 | site1db1、site1db2 | DBDG_SITE11、DBDG_SITE12 | 主要 | 
| DBDG_SITE2 | site2db1、site2db2 | DBDG_SITE21、DBDG_SITE22 | 待命 | 
驗證 Data Guard 部署作業
- 登入主資料庫所在的首個 Bare Metal 解決方案伺服器,然後設定 - ORACLE_SID環境變數,以便連線至主資料庫:- source oraenv <<< "DBDG_SITE11"
- 啟動 SQL*Plus,然後判斷已封存重做記錄的最新序號: - sqlplus / as sysdba- SELECT THREAD#, max(SEQUENCE#) "Last Primary Seq Archived" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;- 以下輸出內容的執行緒 1 的最大序號為 40,執行緒 2 的最大序號為 33: - THREAD# Last Primary Seq Archived ---------- ------------------------- 1 40 2 33- 記錄結果,與備用資料庫進行比較。待命資料庫中的序號應與主要資料庫相符。 
- 登入代管待命資料庫的第一個 Bare Metal 解決方案伺服器,然後設定 - ORACLE_SID環境變數,以便連線至待命資料庫:- source oraenv <<< "DBDG_SITE21"
- 啟動 SQL*Plus,然後驗證已接收並套用於已封存重做記錄的最新序號,是否與主要資料庫中的最新序號相符: - sqlplus / as sysdba- SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Received" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;- SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Applied" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# AND VAL.APPLIED IN ('YES','IN-MEMORY') GROUP BY THREAD# ORDER BY 1;- 以下輸出內容包含序號,與先前針對待命資料庫執行的查詢相符: - THREAD# Last Standby Seq Received ---------- ------------------------- 1 40 2 33- THREAD# Last Standby Seq Applied ---------- ------------------------ 1 40 2 33
- 確認代管復原程序的狀態為 - APPLYING_LOG:- SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE '%MRP%';- 以下範例顯示名為 - MRP0的單一受管理復原程序,狀態為- APPLYING_LOG:- PROCESS STATUS --------- ------------ MRP0 APPLYING_LOG
- 檢查待命資料庫是否有任何傳輸或套用延遲情形: - COLUMN NAME FORMAT a20 COLUMN VALUE FORMAT a30 SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME LIKE '%lag%';- 以下輸出結果顯示待命資料庫沒有延遲: - NAME VALUE -------------------- ------------------------------ transport lag +00 00:00:00 apply lag +00 00:00:00- 如果發生延遲,請參閱 Oracle 的 Data Guard 疑難排解說明文件。 
使用 Data Guard 仲介服務進行資料庫切換
切換是指角色互換,主要資料庫會變成待命資料庫,反之亦然。在切換過程中,資料庫用戶端會與主要資料庫中斷連線。視應用程式連線至資料庫的方式而定,切換可能會中斷應用程式流量。Oracle 提供可維持應用程式連續性的選項,可在角色轉換期間使用。您可以按照下列操作說明執行資料庫切換,測試災難復原功能是否就緒:
- 登入主資料庫所在的 Bare Metal 解決方案伺服器。 
- 啟動 Data Guard 指令列介面,並連線至待命資料庫: - dgmgrl- CONNECT SYS@DBDG_SITE2
- 系統提示輸入密碼時,請輸入資料庫的 SYS 遠端登入密碼。 
- 驗證資料庫是否已準備好進行切換。 - VALIDATE DATABASE DBDG_SITE2;- 成功的結果會回報資料庫已準備好進行切換。 
- 如果執行成功,請執行切換指令: - SWITCHOVER TO DBDG_SITE2;- 如果指令成功,您會收到 - DBDG_SITE2是設定中新的主要資料庫的訊息。
- 執行下列指令,確認資料庫角色是否已互換: - SHOW CONFIGURATION;
- 執行下列指令,即可恢復原始設定: - SWITCHOVER TO DBDG_SITE1;
使用 Data Guard 仲介服務進行資料庫容錯移轉
容錯移轉是指角色轉換,其中一個待命資料庫會因網站完全中斷而轉移至主要角色。備用資料庫恢復後,系統才會將 Redo 傳送至備用資料庫。
執行容錯移轉
- 登入第一部代管待命資料庫的 Bare Metal 解決方案伺服器。 
- 連線至 Data Guard 指令列介面,然後將主要資料庫容錯移轉至待命資料庫: - dgmgrl- CONNECT SYS@DBDG_SITE2
- 系統提示輸入密碼時,請輸入資料庫的 SYS 遠端登入密碼。 
- 啟動容錯移轉: - FAILOVER TO DBDG_SITE2- 執行 - show configuration;以確認- DBDG_SITE2現為主要資料庫,且需要恢復- DBDG_SITE1。
恢復主要資料庫
只有在啟用 flashback database 時,您才能在容錯移轉後恢復主要資料庫。如要恢復失敗的主資料庫,請按照下列步驟操作:
- 登入代管主要資料庫的第一部 Bare Metal 解決方案伺服器。 
- 連線至 Data Guard 指令列介面、登入主要資料庫,然後還原失敗的資料庫: - dgmgrl- CONNECT SYS@DBDG_SITE2- 系統提示輸入密碼時,請輸入資料庫的 SYS 遠端登入密碼。 
- 恢復資料庫: - REINSTATE DATABASE DBDG_SITE1; EXIT;
後續步驟
接下來,請在 Compute Engine 上設定 Data Guard 觀察器。