7 Zero Downtime Migrationを使用したデータベースの移行

データベース移行ジョブを評価し、ジョブを実行し、データベースの移行中または移行後にその他の操作を実行します。

既知の問題、My Oracle Supportノートおよびランブックの最新情報は、Zero Downtime Migrationリリース・ノートを参照してください。

移行ジョブの評価

Zero Downtime Migrationには、移行ジョブを本番データベースに対して実行する前に評価するためのオプションおよびツールが用意されています。

このトピックの移行手順を開始する前に、すべての前提条件を満たし、物理データベース移行の準備で説明されている必要な準備を完了しておきます。

また、次のタスクが完了していることを確認してください。

  • 必要なアクセス資格証明を取得します。

    Oracle Cloud Infrastructure Object Storageをバックアップ媒体として使用する場合は、Object Storageのアクセス資格証明を取得します。Oracle Cloud Infrastructureコンソール・ユーザーの場合はユーザーIDが、Object Storageの場合は認証トークンが必要です。既存の認証トークンを使用していない場合は、Oracle Cloud Infrastructureコンソールを使用して新しい認証トークンを生成できます。

    ソース・データベース・サーバーにrootユーザーでアクセスする場合は、rootユーザーのパスワードが必要です。ソース・データベース・サーバーとターゲット・データベース・サーバーに秘密キー・ファイルを使用してアクセスする場合は、秘密キー・ファイルが必要です。ソース・データベース環境のSYSパスワードも必要です。

    Zero Data Loss Recovery Applianceをバックアップ媒体として使用する場合は、Zero Data Loss Recovery Appliance仮想プライベート・カタログ(VPC)のユーザー資格証明を取得します。

  • Zero Downtime Migrationのレスポンス・ファイルを準備します。

    データベースの移行は、タスクを完遂するために不可欠なパラメータを取得するレスポンス・ファイルによって決定されます。

    特定のソース、ターゲットおよびバックアップ環境のレスポンス・ファイルを設定するために必要なエントリ例に、$ZDM_HOME/rhp/zdm/template/ファイルのサンプルRSPテンプレートを使用します。

ZDMCLI migrate databaseコマンドには、本番で実行する前に移行をテストできるオプションがあります。次の構文例では、オプションが強調表示されています。

Autonomous Database移行のZDMCLI migrate database構文:

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -rsp file_path
 -sourcedb source_db_unique_name_value
 -sourcenode host
 -srcauth zdmauth
 -srcarg1 user:username
 -srcarg2 identity_file:ssh_key_path
 -srcarg3 sudo_location:sudo_path
 -eval [-advisor [-ignoreadvisor] | -skipadvisor]]

共同管理データベース移行のZDMCLI migrate database構文:

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -rsp file_path
 -sourcedb source_db_unique_name_value
 -sourcenode host
 -srcauth zdmauth
 -srcarg1 user:username
 -srcarg2 identity_file:ssh_key_path
 -srcarg3 sudo_location:sudo_path
 -targetnode host
 -tgtauth zdmauth
 -tgtarg1 user:username
 -tgtarg2 identity_file:ssh_key_path 
 -tgtarg3 sudo_location:sudo_path
 -eval [-advisor [-ignoreadvisor] | -skipadvisor]]
ZDMCLI migrate databaseオプションを使用して移行を評価する方法の詳細は、次の各トピックを参照してください。

ZDMCLI MIGRATE DATABASE -evalオプションの使用

本番データベースのデータベース移行ジョブを発行する前に、テスト移行を実行して、ご使用の構成および設定でプロセスがどこまで対応できるかを判断します。

移行ジョブごとに、まずmigrate databaseを評価モードで実行することをお薦めします。評価モードにより、本番データベースで実際の移行を実行する前に、設定および構成の潜在的な問題を修正できます。

評価モードでは、移行プロセスが変更に影響を与えずに実行されます。実際の移行ジョブを実行する前に、必要に応じて何回でも評価モードで移行ジョブを実行できます。

migrate database出力は、移行ジョブIDを示します。このIDを使用して、ジョブのステータスを問い合せることができます。

移行ジョブの評価を実行するには、次の例に示されているように、ZDMCLIコマンドmigrate database-evalオプションを指定して実行します。

Zero Downtime Migrationサービス・ホストにログインし、zdmuserインストール・ユーザーに切り替えます。

su - zdmuser

ソース・データベース・サーバーへの接続がルート資格証明によって行われる場合、コマンドは次のようになります。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb source_db_unique_name_value
-sourcenode source_database_server_name -srcroot 
-targetnode target_database_server_name 
-backupuser Object_store_login_user_name  
-rsp response_file_location
-tgtauth zdmauth 
-tgtarg1 user:target_database_server_login_user_name 
-tgtarg2 identity_file:ZDM_installed_user_private_key_file_location
-tgtarg3 sudo_location:/usr/bin/sudo -eval

プロンプトに、ソース・データベースのSYSパスワードと、ソース・データベース・サーバーのrootユーザーのパスワードを指定します。バックアップ先がObject Store (バケット)の場合は、ユーザーswift認証トークンを指定します。バックアップ先がStorage Classic (コンテナ)の場合は、テナンシ・ログイン・パスワードを指定します。

次に例を示します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb zdmsdb -sourcenode ocicdb1
-srcroot -targetnode ocidb1 -backupuser backup_user@example.com
-rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_zdmsdb.rsp -tgtauth zdmauth 
-tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3
sudo_location:/usr/bin/sudo -eval

Enter source database zdmsdb SYS password:
Enter source user "root" password:
Enter user "backup_user@example.com" password:

ソース・データベース・サーバーへの接続がSSHキーによって行われる場合、コマンドは次のようになります。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb source_db_unique_name_value
-sourcenode source_database_server_name -srcauth zdmauth 
-srcarg1 user:source_database_server_login_user_name 
-srcarg2 identity_file:ZDM_installed_user_private_key_file_location 
-srcarg3 sudo_location:/usr/bin/sudo -targetnode target_database_server_name 
-backupuser Object_store_login_user_name -rsp response_file_location 
-tgtauth zdmauth -tgtarg1 user:target_database_server_login_user_name 
-tgtarg2 identity_file:ZDM_installed_user_private_key_file_location  
-tgtarg3 sudo_location:/usr/bin/sudo -eval

プロンプトに、ソース・データベースのSYSパスワードを指定します。バックアップ先がObject Store (バケット)の場合は、ユーザーswift認証トークンを指定します。バックアップ先がStorage Classic (コンテナ)の場合は、テナンシ・ログイン・パスワードを指定します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb zdmsdb -sourcenode ocicdb1 -srcauth zdmauth 
-srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk 
-srcarg3 sudo_location:/usr/bin/sudo -targetnode ocidb1 -backupuser backup_user@example.com 
-rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_zdmsdb.rsp -tgtauth zdmauth -tgtarg1 user:opc 
-tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -eval

Enter source database zdmsdb SYS password:
Enter user "backup_user@example.com" password:

ソースのシングル・インスタンス・データベースがGrid Infrastructureホームなしでデプロイされている場合、前述のコマンドでは、-sourcedbのかわりに-sourcesidを使用します。

また、ソース・データベースがPASSWORDベースのウォレット用に構成されている場合、前述のコマンドに-tdekeystorepasswdオプションを追加し、プロンプトにソース・データベースのTDEキーストア・パスワード値を指定します。

–backupuser引数は、Object Storageアクセス・ユーザーまたはZero Data Loss Recovery Appliance VPCユーザーを取り、NFSがバックアップ媒体の場合はスキップされます。NFSの場合は、ソース・データベース・ユーザーには、指定されたNFSパスに対する'rwx'アクセス権が必要です。

移行コマンドでは、ソース・ホームとターゲット・ホームのパッチ・レベル間のパッチの互換性がチェックされ、ターゲット・ホームのパッチ・レベルがソース以上であることが要求されます。ターゲット・ホームのパッチ・レベルが想定どおりでない場合、移行ジョブは停止し、欠落しているパッチがレポートされます。ターゲット・ホームに必要なパッチを適用することも、–ignore PATCH_CHECKまたは-ignore ALLオプションを移行コマンドに追加することによって移行を強制的に続行することもできます。

-evalを指定してmigrate databaseを実行すると、Zero Downtime Migrationでは、移行ジョブ・フェーズのサブセットのみが実行されます。たとえば、-evalを指定して論理移行ジョブを実行すると、次のフェーズのみが実行されます。

ZDM_VALIDATE_SRC

ZDM_VALIDATE_TGT

ZDM_SETUP_SRC

ZDM_PRE_MIGRATION_ADVISOR

ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC

ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT

ZDM_PREPARE_DATAPUMP_SRC

ZDM_DATAPUMP_ESTIMATE_SRC

ZDM_CLEANUP_SRC

migrate database出力は、移行ジョブのジョブIDを示します。このIDを使用して、ジョブのステータスを問い合せることができます。

コマンドラインでパスワードを指定せずにコマンドを実行する場合は、ウォレットを使用した非対話型のパスワード指定を参照してください。

クラウド移行前アドバイザ・ツールの使用

論理的移行ジョブの場合、クラウド移行アドバイザ・ツール(CPAT)は移行ジョブ中にソース・データベースを分析し、問題のあるデータベース機能および構造についてアドバイスできます。

Zero Downtime MigrationでサポートされるCPATユースケースについては、クラウド移行前アドバイザ・ツールのサポートを参照してください。

CPATはZero Downtime Migrationと統合されており、デフォルトで論理移行ジョブで実行されます。CPATには、次の利点があります。

  • データベースで使用されている、ターゲット環境でサポートされていない機能について警告します

  • データ・ポンプ・エクスポートおよびインポート操作に使用する修正変更またはパラメータ(あるいはその両方)を提案します

  • オプションで、ソース・データベースに対して実行できるチェックに失敗した場合の修正スクリプトを生成します

ZDMCLI migrate databaseを使用して論理移行を実行すると、CPATはデフォルトでフェーズZDM_PRE_MIGRATION_ADVISORとして実行されます。

次のオプションをmigrate databaseで使用して、CPATの実行方法をカスタマイズしたり、CPATフェーズをスキップできます。

  • -advisorは、移行時にクラウド移行前アドバイザ・ツール(CPAT)を排他的に実行するために必要な次の最小移行ジョブ・フェーズのみを実行します。

    ZDM_VALIDATE_SRC

    ZDM_VALIDATE_TGT

    ZDM_SETUP_SRC

    ZDM_PRE_MIGRATION_ADVISOR

    ZDM_CLEANUP_SRC

  • -ignoreadvisorは、CPATによって報告された問題またはエラーを無視します。

  • -skipadvisorは、移行ジョブのCPATフェーズをスキップします。

  • -genfixup {YES | NO}は、チェックに失敗した場合に選択に応じて実行できる修正スクリプトを生成します。

移行ジョブの出力には、この例に示されるように、実行されたチェック、問題の説明および問題を解決するために実行できるアクションが表示されます。

Cloud Premigration Advisor Tool Version 21.1.0-10
Cloud Premigration Advisor Tool completed with overall result: BLOCKER
Cloud Premigration Advisor Tool generated report location:
 /scratch/app/u02/base/zdm/zdm_db12151_1/out/premigration_advisor_report.json
 RESULT: BLOCKER

Schemas Analyzed (2): HR01,HR02
A total of 29 checks were performed
There were 0 checks with FATAL results
There were 1 checks with BLOCKER results: nls_character_set_conversion
 (0 relevant objects)
There were 3 checks with WARNING results: timezone_table_compatibility_higher
 (0 relevant objects), has_role_privileges (0 relevant objects),
 has_sys_privileges (0 relevant objects)
There were 1 checks with INFORMATIONAL results: has_default_tablespace_not_data
 (2 relevant objects) nls_character_set_conversion
         RESULT: BLOCKER
         DESCRIPTION: Check for issues caused by conversion of character data
 from the source to the target database character set, such as expansion of
 character values beyond column length or loss of invalid character codes.
         ACTION: Scan the schemas to be migrated using Database Migration
 Assistant for Unicode (DMU) and analyze all possible convertibility issues.

         FIXUP SCRIPT:
 /scratch/app/u02/base/zdm/zdm_db1215_1/zdm/lib/cpatfixups/gg_force_logging.sql

コマンド・オプションの詳細は、migrate databaseを参照してください。クラウド移行前アドバイザ・ツールの詳細は、Cloud Premigration Advisor Tool (CPAT) Analyzes Databases for Suitability of Cloud Migration (Doc ID 2758371.1)を参照してください。

ノート:

移行レスポンス・ファイルでTABLESを除外しても、CPAT分析からは除外されません。スキーマ全体が除外されている場合は、CPATからSCHEMASを除外できます。

Oracle Cloudでサポートされていない表が存在すると、CPATレポートでBLOCKERステータスが発生する可能性があります。他のすべてのCPAT BLOCKERSに対処している場合は、-ignoreadvisorを使用して新しい移行ジョブを送信し、BLOCKERエラーを無視して移行に進むことができます。

リモート接続でのCPATの手動実行

ZDMCLI migrate databaseによってソース・データベース環境でクラウド移行前アドバイザ・ツール(CPAT)を実行できない場合、たとえばAmazon Web Services RDSから移行する場合など、Zero Downtime Migrationサービス・ホストから手動でCPATを実行できます。

JavaベースのツールであるCPATでは、CPATが実行されるマシンに適切なJava Runtime Environment (JRE)が存在する必要があります。CPATに必要な最小JREバージョンはJava 7です。

CPATでは、JAVA_HOMEまたはORACLE_HOME(あるいはその両方)を使用してJREが検索されるため、Zero Downtime Migrationサービス・ホストでCPATを実行する前に、これらを定義する必要があります。

CPAT premigration.shスクリプトは次の場所にあります

./home/rhp/zdm/lib/cpat/

次のオプションを使用して、リモート・ソース・データベースに対してCPATを実行します。

  • CPATをリモートで実行するには、接続文字列を使用して実行する必要があります。接続文字列を指定するには、オプション--connectstring jdbc:oracle:thin:@SOURCEDB_HOST:PORT/SERVICE_NAMEを使用します
  • CPAT出力ファイルの格納場所を指定するには、オプション--outdir pathを使用します
  • 出力をJSONまたはTEXT、あるいはその両方にするかどうかを指定するには、オプション--reportformatを使用します
  • --pdbnameを使用してPDB名を指定します

次に例を示します。

zdm_user@zdm_host:/scratch/zdm_user/ZDM$ ./home/rhp/zdm/lib/cpat/premigration.sh
 --connectstring jdbc:oracle:thin:@mysourcehost:1521/mysourcedb --username system  
 --targetcloud ATPS --schemas HR01 --outdir /scratch/zdm_user/ZDM/out --logginglevel FINE
 --migrationmethod DATAPUMP GOLDENGATE --reportformat JSON TEXT --pdbname myPDB
Enter password for system user:
Cloud Premigration Advisor Tool Version 22.2.0
Cloud Premigration Advisor Tool completed with overall result: BLOCKER
Cloud Premigration Advisor Tool generated report location:
 /scratch/zdm_user/ZDM/out/premigration_advisor_report.json
Cloud Premigration Advisor Tool generated report location:
 /scratch/zdm_user/ZDM/out/premigration_advisor_report.txt

CPATの詳細は、Cloud Premigration Advisor Tool (CPAT) Analyzes Databases for Suitability of Cloud Migration (Doc ID 2758371.1)を参照してください

データベースの移行

ZDMCLI migrate databaseコマンドを使用して、Zero Downtime Migrationでデータベースの移行を実行します。

このトピックの移行手順を開始する前に、すべての前提条件を満たし、物理データベース移行の準備で説明されている必要な準備を完了しておきます。

特に、次のタスクが完了していることを確認してください。

  • 必要なアクセス資格証明を取得します。

    Oracle Cloud Infrastructure Object Storageをバックアップ媒体として使用する場合は、Object Storageのアクセス資格証明を取得します。Oracle Cloud Infrastructureコンソール・ユーザーの場合はユーザーIDが、Object Storageの場合は認証トークンが必要です。既存の認証トークンを使用していない場合は、Oracle Cloud Infrastructureコンソールを使用して新しい認証トークンを生成できます。

    ソース・データベース・サーバーにrootユーザーでアクセスする場合は、rootユーザーのパスワードが必要です。ソース・データベース・サーバーとターゲット・データベース・サーバーに秘密キー・ファイルを使用してアクセスする場合は、秘密キー・ファイルが必要です。ソース・データベース環境のSYSパスワードも必要です。

    Zero Data Loss Recovery Applianceをバックアップ媒体として使用する場合は、Zero Data Loss Recovery Appliance仮想プライベート・カタログ(VPC)のユーザー資格証明を取得します。

  • Zero Downtime Migrationのレスポンス・ファイルを準備します。

    データベースの移行は、タスクを完遂するために不可欠なパラメータを取得するレスポンス・ファイルによって決定されます。

    特定のソース、ターゲットおよびバックアップ環境に対してレスポンス・ファイルを設定するのに必要なエントリ例に、サンプルの$ZDM_HOME/rhp/zdm/template/zdm_template.rspファイルを使用します。

  • データベース移行を開始する前に、移行プロセスを一時停止して再開する必要があるかどうかを決定します。移行ジョブが開始されると、ジョブ・システムによって、構成されたとおりにジョブが実行されます。

    移行ジョブを特定の時点で一時停止して再開する必要がある場合、詳細は、「移行ジョブのフェーズのリスト」および「移行ジョブの一時停止および再開」の各トピック(次の相互参照)を参照してください。

ルート資格証明を使用した物理移行

データベース移行ジョブは、zdmuserユーザーがZDMCLIコマンドmigrate databaseを使用してZero Downtime Migrationサービス・ホストから発行します。

物理移行では、ソース・データベース・サーバーへの接続がルート資格証明によって行われる場合、コマンドは次のようになります。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -sourcedb source_db_unique_name_value 
 -sourcenode source_database_server_name
 -srcroot 
 -targetnode target_database_server_name 
 -backupuser Object_store_login_user_name 
 -rsp response_file_location
 -tgtauth zdmauth 
 -tgtarg1 user:target_database_server_login_user_name
 -tgtarg2 identity_file:ZDM_installed_user_private_key_file_location  
 -tgtarg3 sudo_location:/usr/bin/sudo

プロンプトに、ソース・データベースのSYSパスワードと、ソース・データベース・サーバーのrootユーザーのパスワードを指定します。バックアップ先がObject Store (バケット)の場合は、ユーザーswift認証トークンを指定します。バックアップ先がStorage Classic (コンテナ)の場合は、テナンシ・ログイン・パスワードを指定します。

次に例を示します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -sourcedb zdmsdb
 -sourcenode ocicdb1
 -srcroot
 -targetnode ocidb1
 -backupuser backup_user@example.com
 -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_zdmsdb.rsp
 -tgtauth zdmauth
 -tgtarg1 user:opc
 -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -tgtarg3 sudo_location:/usr/bin/sudo

Enter source database zdmsdb SYS password:
Enter source user "root" password:
Enter user "backup_user@example.com" password:

SSHキーを使用した物理的移行

物理移行では、ソース・データベース・サーバーへの接続がSSHキーによって行われる場合、コマンドは次のようになります。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -sourcedb source_db_unique_name_value 
 -sourcenode source_database_server_name
 -srcauth zdmauth 
 -srcarg1 user:source_database_server_login_user_name 
 -srcarg2 identity_file:ZDM_installed_user_private_key_file_location 
 -srcarg3 sudo_location:/usr/bin/sudo
 -targetnode target_database_server_name 
 -backupuser Object_store_login_user_name
 -rsp response_file_location 
 -tgtauth zdmauth
 -tgtarg1 user:target_database_server_login_user_name 
 -tgtarg2 identity_file:ZDM_installed_user_private_key_file_location  
 -tgtarg3 sudo_location:/usr/bin/sudo

プロンプトに、ソース・データベースのSYSパスワードを指定します。バックアップ先がObject Store (バケット)の場合は、ユーザーswift認証トークンを指定します。バックアップ先がStorage Classic (コンテナ)の場合は、テナンシ・ログイン・パスワードを指定します。

次に例を示します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -sourcedb zdmsdb
 -sourcenode ocicdb1
 -srcauth zdmauth 
 -srcarg1 user:opc
 -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk 
 -srcarg3 sudo_location:/usr/bin/sudo
 -targetnode ocidb1
 -backupuser backup_user@example.com 
 -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_zdmsdb.rsp
 -tgtauth zdmauth
 -tgtarg1 user:opc 
 -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
 -tgtarg3 sudo_location:/usr/bin/sudo

Enter source database zdmsdb SYS password:
Enter user "backup_user@example.com" password:

ソースのシングル・インスタンスがGrid Infrastructureホームなしでデプロイされている場合、前述のコマンドでは、-sourcedbのかわりに-sourcesidを使用します。

ソース・データベースがPASSWORDベースのウォレット用に構成されている場合、前述のコマンドに-tdekeystorepasswdオプションを追加し、プロンプトにソース・データベースのTDEキーストア・パスワード値を指定します。

–backupuser引数は、Object Storageアクセス・ユーザーまたはZero Data Loss Recovery Appliance VPCユーザーを取り、NFSがバックアップ媒体の場合はスキップされます。NFSの場合は、ソース・データベース・ユーザーには、指定されたNFSパスに対する'rwx'アクセス権が必要です。

Autonomous Databaseへの論理移行

Autonomous Databaseへの論理移行では、コマンドは次のようになります。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -rsp file_path
 -sourcedb source_db_unique_name_value
 -sourcenode host
 -srcauth zdmauth
 -srcarg1 user:username
 -srcarg2 identity_file:ssh_key_path
 -srcarg3 sudo_location:sudo_path
 -eval [-advisor [-ignoreadvisor] | -skipadvisor]]

共同管理データベースへの論理移行

共同管理システムへの論理移行では、コマンドは次のようになります。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database
 -rsp file_path
 -sourcedb source_db_unique_name_value
 -sourcenode host
 -srcauth zdmauth
 -srcarg1 user:username
 -srcarg2 identity_file:ssh_key_path
 -srcarg3 sudo_location:sudo_path
 -targetnode host
 -tgtauth zdmauth
 -tgtarg1 user:username
 -tgtarg2 identity_file:ssh_key_path
 -tgtarg3 sudo_location:sudo_path
 [-ignoreadvisor | -skipadvisor]

パッチの互換性

移行コマンドでは、ソース・ホームとターゲット・ホームのパッチ・レベル間のパッチの互換性がチェックされ、ターゲット・ホームのパッチ・レベルがソース以上であることが要求されます。ターゲット・ホームのパッチ・レベルが想定どおりでない場合、移行ジョブは停止し、欠落しているパッチがレポートされます。ターゲット・ホームに必要なパッチを適用することも、–ignore PATCH_CHECKまたは-ignore ALLオプションを移行コマンドに追加することによって移行を強制的に続行することもできます。

ジョブID値

コマンド結果出力には、移行ジョブのジョブIDが示されます。このIDを使用して、ジョブのステータスを問い合せることができます。

非対話型の移行の実行

コマンドラインでパスワードを指定せずにコマンドを実行する場合は、ウォレットを使用した非対話型のパスワード指定を参照してください。

移行ジョブのステータスの問合せ

ジョブの実行中に、移行ジョブのステータスを問い合せることができます。

ジョブIDを指定してZDMCLI query jobコマンドを使用し、データベース移行ジョブのステータスを問い合せます。ジョブIDは、データベース移行ジョブの発行時にコマンド出力に表示されます。

zdmuser> $ZDM_HOME/bin/zdmcli query job -jobid job-id

移行ジョブのコンソール出力は、query jobコマンド出力(結果ファイルのパス)に示されているファイルで確認できます。指定されたファイルで移行の進行状況メッセージを確認できます

移行ジョブのフェーズのリスト

移行ジョブに組み込まれている操作フェーズをリストできます。

移行ジョブに組み込まれている操作フェーズをリストするには、-listphasesオプションをZDMCLI migrateコマンドに追加します。このオプションは、操作に組み込まれているフェーズをリストします。

次に例を示します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb zdmsdb -sourcenode ocicdb1 -srcauth zdmauth
-srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -srcarg3 sudo_location:/usr/bin/sudo
-targetnode ocidb1 -backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_zdmsdb.rsp
-tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
-tgtarg3 sudo_location:/usr/bin/sudo -listphases

移行ジョブの一時停止

移行ジョブは、ZDM_SETUP_TGTフェーズ後の任意の時点で一時停止できます。また、いつでも再開できます。

移行ジョブを一時停止するには、ZDMCLI migrateコマンドで、一時停止する直前の有効なフェーズとともに–pauseafterオプションを指定します。

次の例で-pauseafter ZDM_SETUP_TGTと指定すると、移行ジョブはZDM_SETUP_TGTフェーズの完了後に一時停止します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb zdmsdb -sourcenode ocicdb1
-srcauth zdmauth -srcarg1 user:opc
-srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
-srcarg3 sudo_location:/usr/bin/sudo -targetnode ocidb1 
-backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_zdmsdb.rsp -tgtauth zdmauth 
-tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk
-tgtarg3 sudo_location:/usr/bin/sudo -pauseafter ZDM_SETUP_TGT

一時停止する直前の移行ジョブ・フェーズの選択

migrate database ... -listphasesコマンド出力でリストされるZDM_CONFIGURE_DG_SRCの後の有効なフェーズを選択します。

-pauseafterオプションで指定できるフェーズは1つのみです。

次の場合は、移行ジョブを一時停止し、いくつかの手動ステップの後で再開する必要があります。

  • スタンバイ・データベースをTDEに変換する。ソースが暗号化されていない場合、ZDLRAがデータ転送媒体として使用されている場合、またはOracle Databaseのバージョンが12.2より前の場合は、ターゲット・クラウド・データベースを暗号化する必要があります。
  • Active Data Guardを有効にする(オプション)
  • スイッチオーバー前にData Guard構成ヘルスをモニターする
  • クラウド・データベースをテストする(オプション)。アプリケーション・スイッチオーバーを実行せずにスタンバイをプライマリに変換でき、これを使用してクラウドでテスト用にソース・データベースを複製できます。

物理移行ジョブの一時停止のベスト・プラクティス

物理移行では、フェーズZDM_CONFIGURE_DG_SRC-pauseafterを使用すると、フェーズの実行終了時にターゲット・データベースでスタンバイが作成され、ソース・データベースとターゲット・データベースの間で同期が発生します。

次のことを実行できるように、ZDM_CONFIGURE_DG_SRCの後に移行ジョブを一時停止することをお薦めします。

  • クラウドへのアプリケーション・スイッチオーバーを実行する
  • ZDLRAがバックアップ方法である場合、またはデータベース・リリースがOracle Database 12.2より前の場合、クラウド・データベースを手動で暗号化する
  • オンプレミス・データベースを変更せずに、フェイルオーバーを実行してクラウド・データベースをテストする

一時停止された移行ジョブ中のログ・ファイルの保持

移行ジョブの一時停止と再開の間でソース・データベース・ログ・ファイルとターゲット・データベース・ログ・ファイルがクリーン・アップされないように、ログ・ファイルはそれぞれのソース・データベース・サーバーとターゲット・データベース・サーバーの$ORACLE_BASE/zdm/zdm_db_unique_name_zdm_job_id/zdm/logに書き込まれます。

ZDM_BACKUP_INCREMENTAL_SRCフェーズ中およびフェーズ後に生成されたすべてのアーカイブ・ログが、できればスイッチオーバーまで、または少なくともターゲット・データベースとソース・データベースが同期化されるまで利用可能であることを確認します。ZDM_BACKUP_INCREMENTAL_SRCより前に生成された古いアーカイブ・ログは必要ありません。

移行ジョブの再開

一時停止されたジョブは、それぞれのジョブIDを指定してZDMCLI resume jobコマンドを実行することで、いつでも再開できます。

zdmuser> $ZDM_HOME/bin/zdmcli resume job -jobid Job_ID 
[-pauseafter valid-phase | -rsp zdm_logical_template]

再開時における別の一時停止のスケジュール

次の例に示すように、別の一時停止をスケジュールするには、resume jobコマンドで、一時停止する直前の有効なフェーズとともに–pauseafterオプションを指定します。

現在一時停止しているフェーズより後の有効なフェーズを選択してください。migrate database ... -listphasesコマンドの出力にフェーズのリストが表示されます。

zdmuser> $ZDM_HOME/bin/zdmcli resume job -jobid Job_ID 
  -pauseafter valid-phase

再開時における移行パラメータの変更

論理移行ジョブでは、ジョブの一時停止やジョブ障害時に、一部のパラメータを変更できます。ジョブを再開する準備ができたら、変更したレスポンス・ファイルをコマンドresume jobに指定します。この変更は、ジョブが再開されたときにZero Downtime Migrationによって取得されます。

次に示すように、再開時にパラメータを変更するには、resume jobコマンドで–rspオプションを指定し、変更されたパラメータを含む論理移行レスポンス・ファイルへのパスを指定します。

zdmuser> $ZDM_HOME/bin/zdmcli resume job -jobid Job_ID   
  -rsp modified_zdm_logical_template

次の考慮事項および制限が適用されます。

  • 特定のプロパティのみを変更できます
  • 使用されているフェーズがすでに完了している場合、プロパティ変更は拒否されます
  • ファイルへのプロパティの削除または追加は変更とみなされ、Zero Downtime Migrationでは、追加/削除を含めることができるかどうかを判断するための検証が実行されます。
  • 終了(中止)されたジョブと評価ジョブは再開できません。

次の表に、どのパラメータが変更可能で、どのフェーズまで変更できるかを示します。DATA_TRANSFER_MEDIUMDBLINKに設定されている場合、設定できる期間が終了するフェーズは異なることに注意してください。

表7-1 再開時に変更可能な移行パラメータ

パラメータ いつ変更できますか?

SOURCEDATABASE_CONNECTIONDETAILS_HOST

任意のフェーズで変更

SOURCEDATABASE_CONNECTIONDETAILS_PORT

任意のフェーズで変更

OCIAUTHENTICATIONDETAILS_*

任意のフェーズで変更

TARGETDATABASE_CONNECTIONDETAILS_HOST

任意のフェーズで変更

TARGETDATABASE_CONNECTIONDETAILS_PORT

任意のフェーズで変更

TARGETDATABASE_CONNECTIONDETAILS_TLSDETAILS_*

任意のフェーズで変更

TARGETDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_*

任意のフェーズで変更

TARGETDATABASE_CONNECTIONDETAILS_PROXYDETAILS_*

任意のフェーズで変更

SOURCEDATABASE_CONNECTIONDETAILS_TLSDETAILS_*

任意のフェーズで変更

SOURCEDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_*

任意のフェーズで変更

SOURCEDATABASE_CONNECTIONDETAILS_PROXYDETAILS_*

任意のフェーズで変更

SOURCECONTAINERDATABASE_CONNECTIONDETAILS_HOST

任意のフェーズで変更

SOURCECONTAINERDATABASE_CONNECTIONDETAILS_PORT

任意のフェーズで変更

SOURCECONTAINERDATABASE_CONNECTIONDETAILS_TLSDETAILS_*

任意のフェーズで変更

SOURCECONTAINERDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_*

任意のフェーズで変更

SOURCECONTAINERDATABASE_CONNECTIONDETAILS_PROXYDETAILS_*

任意のフェーズで変更

GOLDENGATEHUB_*

ZDM_PREPARE_GG_HUBフェーズがCOMPLETEDになるまで

GOLDENGATESETTINGS_EXTRACT_*

ZDM_CREATE_GG_EXTRACT_SRCフェーズがCOMPLETEDになるまで

GOLDENGATESETTINGS_REPLICAT_*

ZDM_CREATE_GG_REPLICAT_TGTフェーズがCOMPLETEDになるまで

GOLDENGATESETTINGS_ACCEPTABLELAG

ZDM_MONITOR_GG_LAGフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DELETEDUMPSINOSS

ZDM_POST_DATAPUMP_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_FIXINVALIDOBJECTS

ZDM_POST_DATAPUMP_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_TABLEEXISTSACTION

ZDM_DATAPUMP_IMPORT_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_USERMETADATA

ZDM_DATAPUMP_EXPORT_SRCフェーズがCOMPLETEDになるまで、またはDATA_TRANSFER_MEDIUM=DBLINKを使用する場合はZDM_DATAPUMP_IMPORT_TGTフェーズまで

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE

ZDM_DATAPUMP_IMPORT_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE

ZDM_DATAPUMP_EXPORT_SRCフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_SKIPCURRENT

ZDM_DATAPUMP_IMPORT_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_ESTIMATEBYSTATISTICS

ZDM_DATAPUMP_ESTIMATE_SRCフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_RETAININDEX

ZDM_DATAPUMP_EXPORT_SRCフェーズがCOMPLETEDになるまで、またはDATA_TRANSFER_MEDIUM=DBLINKを使用する場合はZDM_DATAPUMP_IMPORT_TGTフェーズまで

DATAPUMPSETTINGS_METADATAREMAPS-LIST_ELEMENT_NUMBER

ZDM_DATAPUMP_EXPORT_SRCフェーズがCOMPLETEDになるまで、またはDATA_TRANSFER_MEDIUM=DBLINKを使用する場合はZDM_DATAPUMP_IMPORT_TGTフェーズまで

DATAPUMPSETTINGS_DATABASELINKDETAILS_NAME

ZDM_VALIDATE_DATAPUMP_SETTINGS_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATABASELINKDETAILS_WALLETBUCKET_*

ZDM_PREPARE_DATAPUMP_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_DATABUCKET_*

ZDM_VALIDATE_DATAPUMP_SETTINGS_SRCフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_*

ZDM_VALIDATE_DATAPUMP_SETTINGS_SRCフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_*

ZDM_VALIDATE_DATAPUMP_SETTINGS_TGTフェーズがCOMPLETEDになるまで

DATAPUMPSETTINGS_CREATEAUTHTOKEN

ZDM_PREPARE_DATAPUMP_TGTフェーズがCOMPLETEDになるまで

INCLUDEOBJECTS-LIST_ELEMENT_NUMBER

ZDM_DATAPUMP_EXPORT_SRCフェーズがCOMPLETEDになるまで、またはDATA_TRANSFER_MEDIUM=DBLINKを使用する場合はZDM_DATAPUMP_IMPORT_TGTフェーズまで

EXCLUDEOBJECTS-LIST_ELEMENT_NUMBER

ZDM_DATAPUMP_EXPORT_SRCフェーズがCOMPLETEDになるまで、またはDATA_TRANSFER_MEDIUM=DBLINKを使用する場合はZDM_DATAPUMP_IMPORT_TGTフェーズまで

OCIPROXY_*

任意のフェーズで変更

DUMPTRANSFERDETAILS_*

ZDM_TRANSFER_DUMPS_SRCフェーズがCOMPLETEDになるまで

TABLESPACEDETAILS_AUTOCREATE

ZDM_PREPARE_DATAPUMP_SRCフェーズがCOMPLETEDになるまで

TABLESPACEDETAILS_USEBIGFILE

ZDM_PREPARE_DATAPUMP_SRCフェーズがCOMPLETEDになるまで

TABLESPACEDETAILS_EXTENTSIZEMB

ZDM_PREPARE_DATAPUMP_SRCフェーズがCOMPLETEDになるまで

TABLESPACEDETAILS_AUTOREMAP

ZDM_DATAPUMP_IMPORT_TGTフェーズがCOMPLETEDになるまで

TABLESPACEDETAILS_REMAPTARGET

ZDM_DATAPUMP_IMPORT_TGTフェーズがCOMPLETEDになるまで

TABLESPACEDETAILS_EXCLUDE

ZDM_PREPARE_DATAPUMP_SRCフェーズがCOMPLETEDになるまで

WALLET_*

ZDM_PREPARE_DATAPUMP_SRCフェーズがCOMPLETEDになるまで

移行ジョブの一時停止および再開

移行ジョブはどの時点でも一時停止でき、いつでも再開できます。

移行ジョブを一時停止するには、次のコマンドを実行します。

zdmuser> $ZDM_HOME/bin/zdmcli suspend job -jobid job_id

一時停止された移行ジョブの再開

一時停止されたジョブは、それぞれのジョブIDを指定してZDMCLI resume jobコマンドを実行することで、いつでも再開できます。

zdmuser> $ZDM_HOME/bin/zdmcli resume job -jobid Job_ID 
[-pauseafter valid-phase]

オプションで、resumeコマンドで–pauseafterオプションを指定して、一時停止する有効なフェーズを指定することにより、一時停止をスケジュールできます。migrate database ... -listphasesコマンド出力にリストされるフェーズで、現在一時停止しているフェーズより後の有効なフェーズを選択します。

移行ジョブの再実行

移行ワークフローに予期しないエラーがある場合は、それらを修正して移行ジョブを再実行できます。

エラーはジョブ出力に記録され、ZDMCLI query jobコマンドを使用して問い合せることができます。エラーを解決したら、失敗したジョブを障害が発生した時点から続行できます。

次に示すように、再実行するジョブのジョブIDを指定してZDMCLI resume jobコマンドを実行し、移行ジョブを再実行します。

zdmuser> $ZDM_HOME/bin/zdmcli resume job -jobid Job_ID

実行中の移行ジョブの終了

指定したデータベースに対してデータベース移行ジョブを再発行する場合は、まず、実行中の移行ジョブを停止する必要があります。

Zero Downtime Migrationでは、データベースがすでに進行中の移行ジョブの一部である場合、指定されたデータベースに対してMIGRATE DATABASEコマンドの再実行の試行をブロックします。

指定されたデータベースのデータベース移行ジョブを再発行する場合は、まずZDMCLI ABORT JOBコマンドを使用して、EXECUTINGまたはPAUSEDのいずれかの状態にある実行中の移行ジョブを終了する必要があります。

zdmuser> $ZDM_HOME/bin/zdmcli abort job -jobid job-id

Zero Downtime Migration集中フリート移行管理

Zero Downtime Migrationでは、Object StorageサービスPAR URLを使用してフリート・レベルの移行を集中的にモニターできます。

Zero Downtime集中フリート移行管理では、次の機能が提供されます。

  • フリート・レベルの移行モニタリング
  • トラブルシューティングおよびデータ・マイニングを容易にするフリート・レベルのログ集計
  • ジョブ・メトリック収集ごとの集中移行。エグゼクティブレベルの移行ステータス・ダッシュボードおよび将来の移行予測に利用できます。

また、集中フリート移行管理により、移行が失敗した場合に操作チームがソースまたはターゲットのデータベース・サーバーにアクセスすることを禁止できます。操作チームは、指定されたZDM_LOG_OSS_PAR_URLにあるログ、または操作のトラブルシューティングのために別のOracle Cloudストレージ・バケットにさらにステージングされたログを使用して、障害をトラブルシューティングできます。

集中フリート移行管理は、物理移行ジョブでのみサポートされ、パラメータZDM_LOG_OSS_PAR_URLを次のような事前認証済URLに設定することで有効になります。

https://objectstorage.us-region.oraclecloud.com/ … /DEV_ZDM_LOGS_RGN/o/

Zero Downtime Migrationは、移行ジョブの進行中に、指定されたOSS PAR URLにジョブ固有のデータ(次の表を参照)を定期的にアップロードします。

表7-2 集中フリート移行ジョブ・データ

カテゴリ URLネームスペース接尾辞(ZDM_LOG_OSS_PAR_URLの値に付加) 内容

ジョブ・メトリック

PAR_URL/1/POD_NAME/ZDM_HOST/JOB_ID/METRICS.txt

次に例を示します。

/1/PRD_TEST_MIGRATION/s16izp/1/METRICS.txt

ジョブ・メトリックは、ワークフローおよびエラーに関連するフェーズごとのソースおよびターゲット・データベースの重要な統計とバックアップおよびリストア統計の詳細を示します。このデータは、エグゼクティブ・ダッシュボードのフリート・レベルの移行統計に使用できます。

ジョブ・ステータス

PAR_URL/1POD_NAME/ZDM_HOST/JOB_ID/CURRENT_PHASE.txt

次に例を示します。

/1/PRD_TEST_MIGRATION/s16izp/1/CURRENT_PHASE.txt

ステータス・エントリは次の形式でリストされます

Phase Name:Phase Status

例: ZDM_BACKUP_FULL_SRC:EXECUTING

フェーズ・ステータス値は、EXECUTINGPAUSEDFAILEDまたはCOMPLETEDです

フェーズ・ログ

PAR_URL/2/TIMESTAMP/POD_NAME/ZDM_HOST/JOB_ID/ACTION HOST/PHASE_NAME.log

次に例を示します。

2/2011-11-07T17:58:34.049000/PRD_TEST_MIGRATION/2-zdm-01/1/cldx01/ZDM_BACKUP_FULL_SRC.log

Zero Downtime Migrationは、UTCタイムスタンプ付きネームスペースを使用して、各フェーズの最後にフェーズ固有のログをアップロードします。ジョブの再実行時に、タイムスタンプが変更され、再実行固有のログが最新のタイムスタンプで識別されます。

フェーズ・ステータス

PAR_URL/1/POD_NAME/ZDM_HOST/JOB_ID/PHASE_NAME.txt

次に例を示します。

/1/PRD_TEST_MIGRATION/s16izp/1/ZDM_VALIDATE_TGT.txt

ファイルの内容は、フェーズが完了した場合はCOMPLETED、まだ開始されていない場合はPENDINGになります。

移行ジョブの開始時に、Zero Downtime MigrationはPENDINGステータスのすべてのフェーズ名付きファイルを作成し、各フェーズの完了時にそれらをCOMPLETEDに更新します。

PHASE_NAME.txtの作成時間を使用して、フェーズの経過時間を測定します。

進行状況メッセージ

PAR_URL/1/POD_NAME/ZDM_HOST/JOB_ID/CONSOLE.out

次に例を示します。

1/PRD_TEST_MIGRATION/s16izp/1/CONSOLE.out

Zero Downtime Migrationは、通常は受信したコンソール・メッセージのn個のチャンクごとに(たとえば、10行ごとに) CONSOLE.outを更新し、エラーが発生した場合は即座に更新します。

進行状況メッセージは次のように書式設定されます。

node name : UTC Time : Progress message

例: hxvdbfz03: 2021-02-10T09:51:11.851Z : Retrieving information from source node "hfzb06" ...