ノート:

Oracle Zero Downtime Migration 21.5 Cloud Native Disaster Recovery Automationの実装

イントロダクション

一般的な移行では、Oracle Zero Downtime Migrationによって、ソース・データベースがターゲット・データベース1つのみ(単一障害点)に移行されます。21.5バージョンでは、移行後に障害時リカバリ(DR)戦略を作成して、事業運営に悪影響を及ぼすイベントへの対応およびイベントからのリカバリを実行できるようになりました。この移行の間には2つのターゲット・データベース(ターゲット・プライマリ・データベースとターゲット・スタンバイ・データベース)がインスタンス化されます。その際に、それら両方を別々のリージョンに配置できます(自然災害の影響を軽減するため)。移行後の作業中に、スイッチオーバーやフェイルオーバーなどのクラウド・ネイティブ操作(Oracle Database Cloud Serviceコンソールを使用)を可能にするために、両方のターゲット・データベースにOracle Data Guard Broker構成がリストアされます。詳細については、Creating an Oracle Cloud Native Disaster Recovery Strategyを参照してください。

アーキテクチャの図

アーキテクチャ

Oracle Zero Downtime Migrationのワークフロー・ステップ

  1. データベース移行を開始します。
  2. サービスからの復元を実行します。
  3. ターゲット・プライマリでスタンバイ・データベースをインスタンス化します。
  4. ターゲット・プライマリでプライマリとスタンバイを同期します。
  5. サービスからの復元を実行します。
  6. ターゲット・スタンバイでスタンバイ・データベースをインスタンス化します。
  7. ソース・スタンバイとターゲット・スタンバイを同期します。
  8. スイッチオーバーの準備状況をモニターします。
  9. スイッチオーバーおよびロール遷移を実行します。
  10. ターゲットのプライマリを構成し、クラウド・ブローカ構成をリストアします。
    1. Oracle Zero Downtime Migrationは、クラウド・ターゲットのプライマリ・スタンバイとクラウド・ターゲット・スタンバイの間でクラウド・ブローカ構成をリストアします。
    2. Oracle Zero Downtime Migrationは、REDOログをターゲット・スタンバイに送信するようにターゲット・プライマリを構成します。
  11. 検証後のチェックを実行します。
  12. 移行プロセスを確定します。

ノート: Oracle Base Database Service、Oracle Exadata Database Service on Dedicated Infrastructure、Oracle Exadata Database Service on Cloud@Customer、ExadataオンプレミスおよびOracle Database@Azure上のOracle Exadata Database Service on Dedicated Infrastructureがこのワークフローをサポートします。

前提条件

タスク1: 移行前のタスク

次のステップでは、実際の移行前に完了する必要のある前提条件タスクについて説明します。

  1. ソフトウェアをソースシステムにインストールします。zdmcli buildはバイナリのバージョンを表示します。詳細は、ソース・システムへのソフトウェアのインストールを参照してください。

    ここにイメージ摘要を入力してください

  2. 前提条件で説明したように、次の図に示すように、OCIターゲットのプライマリ仮想マシン・データベース・システム・マシンとターゲット・スタンバイ仮想マシン間でDR設定が構成されています。

    ここにイメージ摘要を入力してください

    データベースおよびサーバー・インベントリ:

    名前 Value
    DB名およびバージョン Db0403 & 19c
    ソース(オンプレミス)ホスト名 データベース・ソース
    OCI「ターゲット・プライマリ」ホスト名 オシサーバープライマリ
    OCI「ターゲット・プライマリ」コンソール表示名 OCI_FUTURE_PRIMARY
    OCI "ターゲット・スタンバイ"ホスト名 オシサーバースタンバイ
    OCI "ターゲット・スタンバイ"コンソール表示名 OCI_FUTURE_STANDBY
    PDB名 Db0403_Pdb1
    ZDMサーバー名バージョン(&V) ワークショップ&21.5

    次のイメージは、OCIターゲットのプライマリ・データベースおよびターゲット・スタンバイ・データベース・システムの詳細を示しています。

    ここにイメージ摘要を入力してください

    ここにイメージ摘要を入力してください

  3. ソース・データベースの強制ロギングおよびアーカイブ・ログ・モードが有効になっており、次のコマンドを使用して検証できます。

    select force_logging ,log_mode from v$database;
    FORCE_LOGGING  LOG_MODE
    --------------------------------------- ------------
    YES  ARCHIVELOG
    
  4. tnspingコマンドを実行して、ソース・プライマリ・サーバーとターゲット・プライマリ・サーバーの間で有効になっている1521ポートをテストし、その逆をログ送信用にテストします。

  5. Oracle Zero Downtime Migrationサーバーは、ソースにzdmuserとしてSSHを実行し、プライマリ・サーバーとターゲット・スタンバイ・サーバーをOPCユーザーとしてターゲット指定できる必要があります。このソース・サーバーのOSユーザーは、この移行でターゲットOSのOPCユーザー名とともにOPCも使用されます。

    ここにイメージ摘要を入力してください

  6. ソース・サーバーの/etc/hostsファイルをターゲットのプライマリおよびターゲットのスタンバイ情報で更新しました。

    ここにイメージ摘要を入力してください

  7. 次の図に示すエントリを使用して、OCIの将来のプライマリ・サーバー/etc/hostsファイルを更新しました。

    ここにイメージ摘要を入力してください

  8. 次の図に示すエントリでOCIの将来のスタンバイ・サーバー` /etc/hosts`ファイルを更新しました。

    ここにイメージ摘要を入力してください

  9. 次の図に示すエントリを使用して、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: 最終移行ジョブのインスタンス化

EVALジョブ・ステータスはタスク2から成功で、移行の開始には次のコマンドが使用されます。

/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

ZDM_CONFIGURE_DG_TGTフェーズ後に移行を一時停止するpauseafterフラグが移行コマンドに追加されました。これで、ジョブは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 Brokerは、構成内の3つのデータベースすべてを含むOracle Zero Downtime Migrationジョブによって構成され、すべてが同期しています。

ここにイメージ摘要を入力してください

タスク4: 移行ジョブ・スイッチオーバー・フェーズの開始

Oracle Zero Downtime Migrationジョブおよびタスク3ジョブ(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 ~]$

DGMGRLコマンドは、データベース・スイッチオーバーが実行されると、ターゲット・プライマリOCI (現在は現在のプライマリ)から実行されます。OCIターゲット・スタンバイは予想どおりスタンバイ・モードであり、ソースはプライマリ・ロールからフィジカル・スタンバイ・ロールに変更されています。

ここにイメージ摘要を入力してください

オンプレミス・スタンバイ・データベースがブローカ構成に表示されないにもかかわらず、OCIプライマリ・データベースからソース・オンプレミス・データベースへのREDOログが引き続き受信され、ログ・スイッチまたはlog_archive_dest_3値を使用して検証できます。

ここにイメージ摘要を入力してください

タスク5: 構成からのソース・データベースの削除

オンプレミス同期を完全に削除し、OCIコンソールからネイティブ・スイッチオーバーを実行します。

ここにイメージ摘要を入力してください

コンソールからスイッチオーバー・タスクを開始し、コンソールのスイッチオーバーをテストします。

ここにイメージ摘要を入力してください

  OCIプライマリ OCIスタンバイ
スイッチオーバー前 DB0403_primary_oci DB0403_69p_iad
スイッチオーバー後 DB0403_69p_iad DB0403_primary_oci

次の図は、スイッチオーバーの完了後のDGMGRL出力を示しています。

ここにイメージ摘要を入力してください

承認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。