附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
導入 Oracle Zero Downtime Migration 21.5 Cloud Native Disaster Recovery Automation
簡介
在一般移轉中,Oracle Zero Downtime Migration 只會將來源資料庫移轉至一個目標資料庫 (單一失敗點)。現在在 21.5
版本中,您也可以在移轉後建立「災害復原 (DR)」策略,以便能夠回應和復原對業務作業有負面影響的事件。移轉期間會建立兩個目標資料庫 (目標主要資料庫和目標待命資料庫),其中兩個目標資料庫都可以位於不同的區域 (以減少自然災害的影響)。在移轉後,會在兩個目標資料庫中回復 Oracle Data Guard 中介組態,以允許切換和容錯移轉等雲端原生作業 (在 Oracle Database Cloud Service 主控台中)。如需詳細資訊,請參閱建立 Oracle Cloud 原生災害復原策略。
架構圖
Oracle Zero Downtime Migration 工作流程步驟
- 開始資料庫移轉。
- 從服務執行回復。
- 在目標主要資料庫上建立待命資料庫。
- 同步目標主要資料庫上的主要資料庫和待命資料庫。
- 從服務執行回復。
- 在目標待命資料庫上建立待命資料庫。
- 同步來源和目標待命資料庫。
- 監控切換整備度。
- 執行切換和角色轉換。
- 設定目標主要和回復雲端中介組態。
- Oracle Zero Downtime Migration 可回復雲端目標主要和雲端目標待命資料庫之間的雲端中介組態。
- Oracle Zero Downtime Migration 可設定將重做日誌傳送至目標待命資料庫的目標主要資料庫。
- 執行驗證後檢查。
- 完成移轉處理作業。
Note: Oracle Base Database Service, Oracle Exadata Database Service on Dedicated Infrastructure, Oracle Exadata Database Service on Cloud@Customer, Exadata on-premises, and Oracle Exadata Database Service on Dedicated Infrastructure on Oracle Database@Azure support this workflow.
必要條件
-
開始移轉處理作業之前,請先佈建目標主要資料庫和目標待命資料庫。假設使用 Oracle Data Guard 中介來設定這些環境。
- 當 platform_type 使用 Exadata Cloud Service (ExaCS) /Oracle Exadata Database Service on Cloud@Customer 時,可以使用 Oracle Data Guard Associations (在 Oracle Database Cloud Service 主控台中) 來完成。
- 如果是虛擬機器資料庫系統 platform_type,您可以使用 Oracle Data Guard 命令行介面 (DGMGRL) (這是 Oracle Data Guard 中介 CLI 工具) 來完成 (手動) 組態。
-
支援的移轉方法:只支援線上移轉 (使用 Oracle Data Guard 的位置)。
-
支援的資料傳輸方法: OCI Object Storage、Zero Data Loss Recovery Appliance (ZDLRA)、Direct。
-
支援的平台類型:ExaCS、Cloud@CustomerOracle Exadata Database Service on Cloud@Customer 上的 Oracle Exadata Database Service、虛擬機器資料庫系統 (不支援 ZDLRA)。
-
產生公用 / 私密金鑰組,並將公用金鑰新增至所有 3 個 (來源、目標主要、目標待命) 伺服器。在可存取位置的 Oracle Zero Downtime Migration 服務主機上複製私密金鑰檔案。移轉登入時將使用此檔案。
工作 1:移轉前工作
下列步驟說明實際移轉之前要完成的先決條件作業。
-
在來源系統上安裝軟體。
zdmcli
組建會顯示二進位檔案的版本。如需詳細資訊,請參閱 Install the Software on the Source System 。 -
如先決條件所述,已在 OCI 目標主要和目標待命虛擬機器資料庫系統機器之間設定 DR 設定,如以下影像所示。
資料庫與伺服器產品目錄:
名稱 數值 資料庫名稱與版本 Db0403 & 19c 來源 (內部部署) 主機名稱 資料庫來源 OCI「目標主要」主機名稱 主治者 OCI「目標主要」主控台顯示名稱 OCI_FUTURE_PRIMARY OCI「目標待命」主機名稱 ociserverstandby OCI「目標待命」主控台顯示名稱 OCI_FUTURE_STANDBY PDB 名稱 Db0403_Pdb1 ZDM 伺服器名稱版本 (&V) 工作室 & 21.5 下列影像顯示 OCI 目標主要資料庫和目標待命資料庫系統詳細資訊。
-
來源資料庫已啟用強制日誌記錄和存檔日誌模式,可以使用下列命令來驗證它。
select force_logging ,log_mode from v$database; FORCE_LOGGING LOG_MODE --------------------------------------- ------------ YES ARCHIVELOG
-
執行
tnsping
命令以測試來源與目標主要伺服器之間啟用的1521
連接埠,反之亦然,以進行日誌傳送。 -
Oracle Zero Downtime Migration 伺服器應該能夠以
zdmuser
身分使用 SSH 來源,並以 OPC 使用者身分定位主要和目標待命伺服器。此處的來源伺服器作業系統使用者也是此移轉中使用的 OPC 以及目標作業系統 OPC 使用者名稱。 -
已使用目標主要和目標待命資訊更新來源伺服器
/etc/hosts
檔案。 -
已使用下列影像中顯示的項目更新 OCI 未來主要伺服器
/etc/hosts
檔案。 -
已使用下列影像中顯示的項目更新 OCI 未來待命伺服器 ` /etc/hosts` 檔案。
-
已使用下列影像中顯示的項目更新 Oracle Zero Downtime Migration 服務主機伺服器
/etc/hosts
檔案。
工作 2:評估 Oracle Zero Downtime Migration 工作
使用 -eval
旗標命令驗證 Oracle Zero Downtime Migration 就緒命令。-eval
不會起始即時移轉,將用於評估環境前置檢查與新功能。
執行下列命令:
/u01/app/zdmhome/bin/zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 -eval
輸出:
回應檔參數將用於最終移轉。
作業 3:建立最終移轉工作
工作 2 的 EVAL 工作狀態為成功,以下命令用於開始移轉。
/u01/app/zdmhome/bin/zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 -pauseafter ZDM_CONFIGURE_DG_TGT
已將 pauseafter
旗標新增至移轉命令,以在 ZDM_CONFIGURE_DG_TGT
階段後暫停移轉。現在工作已順利完成到 ZDM_CONFIGURE_DG_TGT
階段,並如預期暫停。
移轉結果:
[zdmuser@workshop ~]$ zdmcli query job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 115
Job ID: 13
User: zdmuser
Client: workshop
Job Type: "MIGRATE"
Scheduled job command: "zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1"
Scheduled job execution start time: 2025-04-03T18:23:49Z. Equivalent local time: 2025-04-03 18:23:49
Current status: PAUSED
Current Phase: "ZDM_CONFIGURE_DG_TGT"
Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.log"
Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.json"
Job execution start time: 2025-04-03 18:23:55
Job execution end time: 2025-04-03 19:35:48
Job execution elapsed time: 41 minutes 7 seconds
ZDM_GET_SRC_INFO .............. COMPLETED
ZDM_GET_TGT_INFO .............. COMPLETED
ZDM_GET_STBY_INFO ............. COMPLETED
ZDM_PRECHECKS_SRC ............. COMPLETED
ZDM_PRECHECKS_TGT ............. COMPLETED
ZDM_PRECHECKS_STBY ............ COMPLETED
ZDM_SETUP_SRC ................. COMPLETED
ZDM_SETUP_TGT ................. COMPLETED
ZDM_SETUP_STBY ................ COMPLETED
ZDM_PREUSERACTIONS ............ COMPLETED
ZDM_PREUSERACTIONS_TGT ........ COMPLETED
ZDM_PREUSERACTIONS_STBY ....... COMPLETED
ZDM_VALIDATE_SRC .............. COMPLETED
ZDM_VALIDATE_TGT .............. COMPLETED
ZDM_VALIDATE_STBY ............. COMPLETED
ZDM_DISCOVER_SRC .............. COMPLETED
ZDM_COPYFILES ................. COMPLETED
ZDM_PREPARE_TGT ............... COMPLETED
ZDM_SETUP_TDE_TGT ............. COMPLETED
ZDM_RESTORE_TGT ............... COMPLETED
ZDM_RECOVER_TGT ............... COMPLETED
ZDM_FINALIZE_TGT .............. COMPLETED
ZDM_CONFIGURE_DG_SRC .......... COMPLETED
ZDM_COPYFILES_TGT_STBY ........ COMPLETED
ZDM_PREPARE_STBY .............. COMPLETED
ZDM_SETUP_TDE_STBY ............ COMPLETED
ZDM_RESTORE_TGT_STBY .......... COMPLETED
ZDM_RECOVER_TGT_STBY .......... COMPLETED
ZDM_FINALIZE_STBY ............. COMPLETED
ZDM_CONFIGURE_DG_TGT .......... COMPLETED
ZDM_SWITCHOVER_SRC ............ PENDING
ZDM_SWITCHOVER_TGT ............ PENDING
ZDM_POST_DATABASE_OPEN_TGT .... PENDING
ZDM_DATAPATCH_TGT ............. PENDING
ZDM_POST_MIGRATE_TGT_STBY ..... PENDING
ZDM_POST_MIGRATE_TGT .......... PENDING
ZDM_POSTUSERACTIONS ........... PENDING
ZDM_POSTUSERACTIONS_TGT ....... PENDING
ZDM_POSTUSERACTIONS_STBY ...... PENDING
ZDM_CLEANUP_SRC ............... PENDING
ZDM_CLEANUP_TGT ............... PENDING
ZDM_CLEANUP_STBY .............. PENDING
Pause After Phase: "ZDM_CONFIGURE_DG_TGT" <<<<<<<<<<<<<<<< job paused after this Phase.
[zdmuser@workshop ~]$
移轉工作已在切換步驟之前暫停,OCI 未來的主要和未來待命資料庫會變更為實體待命模式,而 Oracle Data Guard 中介則是由 Oracle Zero Downtime Migration 工作在組態中的所有三個資料庫中設定,而且全部都保持同步。
作業 4:開始移轉工作切換階段
讓我們繼續 Oracle Zero Downtime Migration 工作,並開始進行切換,此工作為 13。
[zdmuser@workshop ~]$ zdmcli resume job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 117
zdmcli query job -jobid 13
命令提供工作狀態,且工作現在標示為成功。
輸出:
[zdmuser@workshop ~]$ zdmcli query job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 121
Job ID: 13
User: zdmuser
Client: workshop
Job Type: "MIGRATE"
Scheduled job command: "zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1"
Scheduled job execution start time: 2025-04-03T18:23:49Z. Equivalent local time: 2025-04-03 18:23:49
Current status: SUCCEEDED <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.log"
Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.json"
Job execution start time: 2025-04-03 18:23:55
Job execution end time: 2025-04-04 06:03:04
Job execution elapsed time: 56 minutes 15 seconds
ZDM_GET_SRC_INFO .............. COMPLETED
ZDM_GET_TGT_INFO .............. COMPLETED
ZDM_GET_STBY_INFO ............. COMPLETED
ZDM_PRECHECKS_SRC ............. COMPLETED
ZDM_PRECHECKS_TGT ............. COMPLETED
ZDM_PRECHECKS_STBY ............ COMPLETED
ZDM_SETUP_SRC ................. COMPLETED
ZDM_SETUP_TGT ................. COMPLETED
ZDM_SETUP_STBY ................ COMPLETED
ZDM_PREUSERACTIONS ............ COMPLETED
ZDM_PREUSERACTIONS_TGT ........ COMPLETED
ZDM_PREUSERACTIONS_STBY ....... COMPLETED
ZDM_VALIDATE_SRC .............. COMPLETED
ZDM_VALIDATE_TGT .............. COMPLETED
ZDM_VALIDATE_STBY ............. COMPLETED
ZDM_DISCOVER_SRC .............. COMPLETED
ZDM_COPYFILES ................. COMPLETED
ZDM_PREPARE_TGT ............... COMPLETED
ZDM_SETUP_TDE_TGT ............. COMPLETED
ZDM_RESTORE_TGT ............... COMPLETED
ZDM_RECOVER_TGT ............... COMPLETED
ZDM_FINALIZE_TGT .............. COMPLETED
ZDM_CONFIGURE_DG_SRC .......... COMPLETED
ZDM_COPYFILES_TGT_STBY ........ COMPLETED
ZDM_PREPARE_STBY .............. COMPLETED
ZDM_SETUP_TDE_STBY ............ COMPLETED
ZDM_RESTORE_TGT_STBY .......... COMPLETED
ZDM_RECOVER_TGT_STBY .......... COMPLETED
ZDM_FINALIZE_STBY ............. COMPLETED
ZDM_CONFIGURE_DG_TGT .......... COMPLETED
ZDM_SWITCHOVER_SRC ............ COMPLETED
ZDM_SWITCHOVER_TGT ............ COMPLETED
ZDM_POST_DATABASE_OPEN_TGT .... COMPLETED
ZDM_DATAPATCH_TGT ............. COMPLETED
ZDM_POST_MIGRATE_TGT_STBY ..... COMPLETED
ZDM_POST_MIGRATE_TGT .......... COMPLETED
ZDM_POSTUSERACTIONS ........... COMPLETED
ZDM_POSTUSERACTIONS_TGT ....... COMPLETED
ZDM_POSTUSERACTIONS_STBY ...... COMPLETED
ZDM_CLEANUP_SRC ............... COMPLETED
ZDM_CLEANUP_TGT ............... COMPLETED
ZDM_CLEANUP_STBY .............. COMPLETED
[zdmuser@workshop ~]$
執行資料庫切換時,會從目標主要 OCI (目前為主要) 執行 DGMGRL 命令。OCI 目標待命資料庫仍為待命模式,且來源已從主要待命角色變更為實體待命角色。
儘管內部部署待命資料庫未顯示在中介組態中,但它會持續接收從 OCI 主要資料庫到來源內部部署資料庫的重做日誌,並且可以使用日誌切換或 log_archive_dest_3
值進行驗證。
作業 5:從組態移除來源資料庫
永久移除內部部署同步,並且從 OCI 主控台進行原生切換。
從主控台起始切換作業,以測試主控台切換。
OCI 主要項目 | OCI 待命 | |
---|---|---|
切換前 | DB0403_primary_oci | DB0403_69p_iad |
切換後 | DB0403_69p_iad | DB0403_primary_oci |
下圖顯示切換完成之後的 DGMGRL 輸出。
相關連結
認可
- 作者 - Sivakrishna Burle (Oracle 北美雲端服務資深雲端工程師 - NACIE)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Implement Oracle Zero Downtime Migration 21.5 Cloud Native Disaster Recovery Automation
G32265-01
Copyright ©2025, Oracle and/or its affiliates.