4 Zero Downtime Migrationを使用したデータベースの移行
データベース移行ジョブを評価し、ジョブを実行し、データベースの移行中または移行後にその他の操作を実行します。
既知の問題、My Oracle Supportノートおよびランブックの最新情報は、Zero Downtime Migrationリリース・ノートを参照してください。
- データベースの移行
次の手順に従って、Zero Downtime Migrationを使用してデータベースの移行を実行します。 - 移行ジョブのステータスの問合せ
ジョブの実行中に、移行ジョブのステータスを問い合せることができます。 - 移行ジョブのフェーズのリスト
移行ジョブに組み込まれている操作フェーズをリストできます。 - 移行ジョブの一時停止および再開
移行ジョブは、ZDM_SETUP_TGTフェーズ後のどの時点でも一時停止でき、いつでも再開できます。 - 移行ジョブの再実行
移行ワークフローに予期しないエラーがある場合は、それらを修正して移行ジョブを再実行できます。 - 実行中の移行ジョブの終了
指定したデータベースに対してデータベース移行ジョブを再発行する場合は、まず、実行中の移行ジョブを停止する必要があります。 - 移行後のタスク
次のトピックでは、データベース移行ジョブの完了後に実行するタスクについて説明します。
データベースの移行
次の手順に従って、Zero Downtime Migrationを使用してデータベースの移行を実行します。
移行ジョブのステータスの問合せ
ジョブの実行中に、移行ジョブのステータスを問い合せることができます。
ジョブIDを指定してZDMCLI query jobコマンドを使用し、データベース移行ジョブのステータスを問い合せます。ジョブIDは、データベース移行ジョブの発行時にコマンド出力に表示されます。
zdmuser> ./zdmcli query job -jobid job-id移行ジョブのコンソール出力は、query jobコマンド出力に示されているファイル内にあります。指定されたファイルで移行の進行状況メッセージを確認できます。
移行ジョブのフェーズのリスト
移行ジョブに組み込まれている操作フェーズをリストできます。
移行ジョブに組み込まれている操作フェーズをリストするには、-listphasesオプションをZDMCLI migrateコマンドに追加します。このオプションは、操作に組み込まれているフェーズをリストします。
次に例を示します。
zdmuser> ./zdmcli migrate database -sourcedb zdmsdb -sourcenode ocic31 -srcauth zdmauth
-srcarg1 user:opc -srcarg2 identity_file:/home/oracle/.ssh/zdm_service_node.ppk -srcarg3 sudo_location:/usr/bin/sudo -targetnode rptest
-targethome /u01/app/oracle/product/12.2.0.1/dbhome_1
-backupuser backup_user@example.com -rsp /u01/zdm_template_zdmsdb.rsp
-tgtauth zdmauth -tgtarg1 user:opc
-tgtarg2 identity_file:/home/oracle/.ssh/zdm_service_node.ppk
-tgtarg3 sudo_location:/usr/bin/sudo -listphases移行ジョブの一時停止および再開
移行ジョブは、ZDM_SETUP_TGTフェーズ後のどの時点でも一時停止でき、いつでも再開できます。
移行ジョブを一時停止するには、ZDMCLI migrateコマンドで、一時停止する直前の有効なフェーズとともに–pauseafterオプションを指定します。-listphasesコマンド出力でリストされる有効なフェーズを選択します。
ZDM_SETUP_TGT後にフェーズを一時停止することをお薦めします。
たとえば、-pauseafter ZDM_SWITCHOVER_SRCを指定すると、移行ジョブはZDM_SWITCHOVER_SRCフェーズの完了後に一時停止します。
zdmuser> ./zdmcli migrate database -sourcedb zdmsdb -sourcenode ocic31
-srcauth zdmauth -srcarg1 user:opc
-srcarg2 identity_file:/home/oracle/.ssh/zdm_service_node.ppk
-srcarg3 sudo_location:/usr/bin/sudo -targetnode rptest
-targethome /u01/app/oracle/product/12.2.0.1/dbhome_1
-backupuser backup_user@example.com -rsp /u01/zdm_template_zdmsdb.rsp
-tgtauth zdmauth -tgtarg1 user:opc
-tgtarg2 identity_file:/home/oracle/.ssh/zdm_service_node.ppk
-tgtarg3 sudo_location:/usr/bin/sudo -pauseafter ZDM_SWITCHOVER_SRC一時停止されたジョブは、それぞれのジョブIDを指定してZDMCLI resume jobコマンドを実行すると、いつでも再開できます。別の一時停止をスケジュールするには、resumeコマンドで、一時停止する直前の有効なフェーズとともに–pauseafterオプションを指定します。-listphasesコマンド出力にリストされるフェーズで、現在一時停止しているフェーズより後の有効なフェーズを選択します。
zdmuser> ./zdmcli resume job -jobid Job_ID [-pauseafter valid-phase]-pauseafterで指定できるフェーズは1つのみです。
また、フェーズZDM_CONFIGURE_DG_SRCの移行ジョブで-pauseafterを使用すると、フェーズの実行終了時にターゲット・データベースでスタンバイが作成され、ソース・データベースとターゲット・データベースの間で同期が発生することにも注意してください。
移行ジョブの再実行
移行ワークフローに予期しないエラーがある場合は、それらを修正して移行ジョブを再実行できます。
エラーはジョブ出力に記録され、ZDMCLI query jobコマンドを使用して問い合せることができます。エラーを解決したら、失敗したジョブを障害が発生した時点から続行できます。
次に示すように、再実行するジョブのジョブIDを指定してZDMCLI resume jobコマンドを実行し、移行ジョブを再実行します。
zdmuser> ./zdmcli resume job -jobid Job_ID実行中の移行ジョブの終了
指定したデータベースに対してデータベース移行ジョブを再発行する場合は、まず、実行中の移行ジョブを停止する必要があります。
Zero Downtime Migrationでは、データベースがすでに進行中の移行ジョブの一部である場合、指定されたデータベースに対してMIGRATE DATABASEコマンドの再実行の試行をブロックします。
指定されたデータベースのデータベース移行ジョブを再発行する場合は、ZDMCLI ABORT JOBコマンドを使用して、移行ジョブの実行をEXECUTINGまたはPAUSED状態で終了する必要があります。
zdmuser> ./zdmcli abort job -jobid job-id
移行後のタスク
次のトピックでは、データベース移行ジョブの完了後に実行するタスクについて説明します。
- ターゲット・データベースでのdatapatchの実行
ターゲット・データベース環境がソース・データベースよりも高いパッチ・レベルである場合、ターゲット・データベースでdatapatchユーティリティを実行する必要があります。
ターゲット・データベースでのdatapatchの実行
ターゲット・データベース環境がソース・データベースよりも高いパッチ・レベルである場合、ターゲット・データベースでdatapatchユーティリティを実行する必要があります。
たとえば、ソース・データベースがOct 2018 PSU/BPで、ターゲットがJan 2019 PSU/BPである場合、datapatchユーティリティを実行する必要があります。ターゲットでdatapatchを実行する前に、必ずソース(スタンバイ)データベースのバイナリにターゲット・パッチ・レベルを適用します。
親トピック: 移行後のタスク