4 データベースの移行

次の各トピックでは、移行ジョブの実行手順について説明します。

4.1 データベースの移行プロセスの評価

要件 説明 コメント
事前チェックと設定の検証

データベースの移行プロセスを評価するには、ZDMCLI migrate databaseコマンドに-evalオプションを使用します。

完全なレスポンス・ファイルを使用できるように用意します。また、ソース・データベースのSYSパスワードやObject Store (バケット)のswift認証トークンなど必要な資格証明を準備します(rootユーザーでソース・サーバーにアクセスする場合は、rootユーザーのパスワードも準備します)。

ソース・データベース・サーバーへの接続にrootの資格証明を使用する場合は、コマンドは次のようになります。

zdmuser>$ZDM_HOME/bin/zdmcli migrate database -sourcedb source_db_unique_name_value -sourcenode source_database_server_name -srcroot -targetnode target_database_server_name -targethome target_database_ORACLE_HOME -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

ソース・データベース・サーバーへの接続に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 -targethome target_database_ORACLE_HOME_value -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

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

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

migrate databaseコマンドでは、ソースおよびターゲットのデータベース・サーバーへの接続がチェックされます。

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

移行のたびに、まずmigrate databaseを評価モードで実行することをお薦めします。この評価により、実際の移行を実行する前に、設定と構成の潜在的な問題を修正できるようになります。評価モードでは、ソース・データベースとターゲット・データベースを変更することなく移行プロセスを実行します。実際の移行を実行する前に、-evalオプションを必要な回数だけ使用してコマンドを実行すると安全です。

Zero Downtime Migrationでは、次の事前チェックが実行されます。

  • ソース・データベースに関する情報を検出します
  • ターゲット・データベースに関する情報を検出します
  • ソース・データベース・サーバーでZero Downtime Migrationのヘルパー・モジュールを設定します
  • ターゲット・データベース・サーバーでZero Downtime Migrationのヘルパー・モジュールを設定します
  • RMANバックアップを暗号化するためのランダム・パスワードを生成します

    このパスワードは、Object Storeにソース・データベースのバックアップを作成するために必要になります。

  • ソース・データベースを検証します
    • アーカイブ・ログ・モードのチェック
    • TDEの設定
    • SYSパスワード
    • パッチ・レベル
  • ターゲット・データベースを検証します
    • パッチ・レベル
    • データ・ファイルの記憶域の場所(ASMディスク・グループまたはACFSファイル・システム)
  • Object Store資格証明を検証します

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

ソース・データベース・サーバーへの接続にroot資格証明を使用する場合、コマンドは次のようになります。

zdmuser>$ZDM_HOME/bin/zdmcli migrate database -sourcedb ZDM12201_phx1sp -sourcenode zdm122011 -srcroot -targetnode ocitarget1 -targethome /u02/app/oracle/product/12.2.0/dbhome_3 -backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -ignore ALL -eval

Enter source database ZDM12201_phx1sp SYS password:

Enter source user "root" password:

Enter user "backup_user@example.com" password:

その後で、次のメッセージがジョブID番号とともに表示されます。このジョブID番号は、この後で使用するためにメモしておきます。

Operation "zdmcli migrate database" scheduled with the job ID "5".

ソース・データベース・サーバーへの接続にSSH鍵を使用する場合、コマンドは次のようになります。

zdmuser>$ZDM_HOME/bin/zdmcli migrate database -sourcedb ZDM12201_phx1sp -sourcenode zdm122011 -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -srcarg3 sudo_location:/usr/bin/sudo -targetnode ocitarget1 -targethome /u02/app/oracle/product/12.2.0/dbhome_3 -backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -ignore ALL -eval

Enter source database ZDM12201_phx1sp SYS password:

Enter user "backup_user@example.com" password:

その後で、次のメッセージがジョブID番号とともに表示されます。このジョブID番号は、この後で使用するためにメモしておきます。

Operation "zdmcli migrate database" scheduled with the job ID "5".

コマンドの出力例は、「事前チェックの検証」を参照してください。

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

要件 説明 コメント
移行ジョブのステータスの問合せ

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

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

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

移行ジョブのコンソール出力は、query jobコマンドの出力(Result file path:)に示されたファイルで確認できます。移行プロセスのメッセージは、この出力例で示すように、指定されたファイルで確認できます。

Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-5-2019-12-16-06:37:04.log"

次に例を示します。

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

4.3 データベースの移行

データベース移行ジョブを発行する前に、移行ジョブが成功することを確認して、現在の構成と設定によるプロセスがどの程度の結果になるかを判断します。移行ジョブの評価が成功しない場合、この移行ジョブは成功しません。

データベース移行を開始する前に、移行プロセスを一時停止して再開する必要があるかどうかを決定します。移行ジョブが開始されると、そのジョブ・システムは構成に従ってジョブを実行します。特定の時点で移行ジョブを一時停止および再開する必要がある場合は、「移行ジョブのフェーズのリスト」、「移行ジョブの一時停止および再開」および「移行ジョブの再実行」の手順を参照してください。

要件 説明 コメント
データベースの移行

データベースを移行する場合は、完全なレスポンス・ファイルを用意し、ソース・データベース・サーバーのSYSパスワードやObject Store (バケット)のswift認証トークンなど必要な資格証明の準備を整えます(ソース・データベース・サーバーへのアクセスにrootユーザーを使用する場合は、rootユーザーのパスワードも準備します)。

ソース・データベース・サーバーへの接続にrootの資格証明を使用する場合、コマンドは次のようになります。

zdmuser>$ZDM_HOME/bin/zdmcli migrate database -sourcedb source_db_unique_name_value -sourcenode source_database_server_name -srcroot -targetnode target_database_server_name -targethome target_database_ORACLE_HOME -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

ソース・データベース・サーバーへの接続に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 -targethome target_database_ORACLE_HOME_value -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

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

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

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

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

ソース・データベース・サーバーへの接続にrootの資格証明を使用する場合、コマンドは次のようになります。

zdmuser>$ZDM_HOME/bin/zdmcli migrate database -sourcedb ZDM12201_phx1sp -sourcenode zdm122011 -srcroot -targetnode ocitarget1 -targethome /u02/app/oracle/product/12.2.0/dbhome_3 -backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -ignore ALL

Enter source database ZDM12201_phx1sp SYS password:

Enter source user "root" password:

Enter user "backup_user@example.com" password:

その後で、次のメッセージがジョブID番号とともに表示されます。このジョブID番号は、この後で使用するためにメモしておきます。

Operation "zdmcli migrate database" scheduled with the job ID "6".

ソース・データベース・サーバーへの接続にSSH鍵を使用する場合、コマンドは次のようになります。

zdmuser>$ZDM_HOME/bin/zdmcli migrate database -sourcedb ZDM12201_phx1sp -sourcenode zdm122011 -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -srcarg3 sudo_location:/usr/bin/sudo -targetnode ocitarget1 -targethome /u02/app/oracle/product/12.2.0/dbhome_3 -backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -ignore ALL

Enter source database ZDM12201_phx1sp SYS password:

Enter user "backup_user@example.com" password:

その後で、次のメッセージがジョブID番号とともに表示されます。このジョブID番号は、この後で使用するためにメモしておきます。

Operation "zdmcli migrate database" scheduled with the job ID "6".

次のコマンドを使用して、移行ジョブのステータスを問い合せます。

$ZDM_HOME/bin/zdmcli query job -jobid 6

コマンドの出力例は、「移行ジョブの出力」を参照してください。

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

要件 説明 コメント
移行ジョブのフェーズのリスト

移行ジョブに関係する操作フェーズをリストするには、ZDMCLI migrate databaseコマンドに-listphasesオプションを追加します。

次に例を示します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb ZDM12201_phx1sp -sourcenode zdm122011 -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -srcarg3 sudo_location:/usr/bin/sudo -targetnode ocitarget1 -targethome /u02/app/oracle/product/12.2.0/dbhome_3 -backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -listphases

コマンドの出力例は、「移行ジョブのフェーズのリスト」を参照してください。

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

要件 説明 コメント
移行ジョブの一時停止および再開

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

移行ジョブを一時停止するには、ZDMCLI migrate databaseコマンドに、一時停止する有効なフェーズを設定した–pauseafterオプションを指定します。-listphasesコマンド出力でリストされる有効なフェーズを選択します。

一時停止は、ZDM_SETUP_TGTの後にすることをお薦めします。

たとえば、-pauseafter ZDM_CONFIGURE_DG_SRCを指定すると、移行ジョブはZDM_CONFIGURE_DG_SRCフェーズの完了後に一時停止します。

zdmuser> $ZDM_HOME/bin/zdmcli migrate database -sourcedb ZDM12201_phx1sp -sourcenode zdm122011 -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -srcarg3 sudo_location:/usr/bin/sudo -targetnode ocitarget1 -targethome /u02/app/oracle/product/12.2.0/dbhome_3 -backupuser backup_user@example.com -rsp /u01/app/zdmhome/rhp/zdm/template/zdm_template_ZDM12201.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -pauseafter ZDM_CONFIGURE_DG_SRC

一時停止したジョブは、ジョブIDを指定したZDMCLI resume jobコマンドを使用することで、いつでも再開できます。

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

resume jobコマンドの構文は、次のとおりです。

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

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

注意: フェーズZDM_CONFIGURE_DG_SRCの完了後、ターゲットにスタンバイが作成され、ソースからターゲットへの同期が開始されます。ロール変更の操作を監視して、その操作を再開するかどうかを決定できます。

たとえば、移行ジョブの再開時に別の場所で一時停止するには、次のようにします。

zdmuser> $ZDM_HOME/bin/zdmcli resume job -jobid 6 -pauseafter ZDM_SWITCHOVER_TGT

4.6 移行ジョブの再実行

要件 説明 コメント
移行ジョブの再実行

移行ワークフローで予期しないエラーが発生した場合は、そのエラーを修正してから移行ジョブを再実行できます。

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

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

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

次に例を示します。

$ZDM_HOME/bin/zdmcli resume job -jobid 6

4.7 移行後のタスク

要件 説明 コメント
ターゲット・データベースでdatapatchユーティリティを実行します

データベース移行ジョブの完了後、ターゲット・データベース環境のパッチ・レベルがソース・データベースよりも高い場合は、ターゲット・データベースでdatapatchユーティリティを実行する必要があります。

たとえば、ソース・データベースがOct 2018 PSU/BPで、ターゲットがJan 2019 PSU/BPである場合、datapatchユーティリティを実行する必要があります。

ターゲットでdatapatchを実行する前に、必ずソース(スタンバイ)データベースのバイナリにターゲット・パッチ・レベルを適用します。

マルチテナント・アーキテクチャを実行している場合は、PDBを開きます。

SQL> alter pluggable database all open;

すべてのPDBでdatapatchを実行することをお薦めします。ただし、CDB内のPDBのサブセットのみを開く場合は、かわりに次のコマンドを使用できます。datapatchは、CDBおよびオープンされたPDBでのみ実行されます。

SQL> alter pluggable database PDB_NAME open;

datapatchを(以前にスキップされた、または新しくプラグインされた) PDBで後から実行するには、AlTER PLUGGABLE DATABASEコマンドを使用してデータベースを開いて、datapatchユーティリティを再実行します。

ORACLE_HOMEのOPatchディレクトリに移動して、datapatchユーティリティを実行します。

% cd $ORACLE_HOME/OPatch

% ./datapatch -verbose

datapatchユーティリティにより、必要な適用スクリプトが実行され、変更されたSQLファイルがデータベースにロードされます。dba_registry_sqlpatchビューに、パッチの適用を示すエントリが追加されます。

エラーがないか確認します。エラー・ログは、$ORACLE_BASE/cfgtoollogs/sqlpatch/patch#/unique patch IDディレクトリに次の形式で格納されています。

patch#_apply_database_SID_CDB_name_timestamp.log

database_SIDはデータベースSID、CDB_nameはマルチテナント・コンテナ・データベースの名前、タイムスタンプの形式はYYYYMMMDD_HH_MM_SSです

なし
Exadata Cloud Serviceデータベースの登録

この要件は、Exadata Cloud Serviceターゲットに移行する場合にのみ適用されます。

Exadata Cloud Serviceデータベースを登録して、すべての要件を満たしていることを確認します。

Exadata Cloud Serviceデータベース・サーバーでrootユーザーとして次のコマンドを実行します。

/root>dbaascli registerdb prereqs --dbname db_name --db_unique_name db_unique_name

/root>dbaascli registerdb begin --dbname db_name --db_unique_name db_unique_name

次に例を示します。

/root>dbaascli registerdb prereqs --dbname ZDM12201 --db_unique_name ZDM12201_phx1xx

DBAAS CLI version 18.2.3.2.0

Executing command registerdb prereqs --db_unique_name ZDM12201_phx1xx

INFO: Logfile Location: /var/opt/oracle/log/ZDM12201/registerdb/registerdb_2019-08-14_05:35:31.157978280334.log

INFO: Prereqs completed successfully

/root>

/root>dbaascli registerdb begin --dbname ZDM12201 --db_unique_name ZDM12201_phx1xx

DBAAS CLI version 18.2.3.2.0

Executing command registerdb begin --db_unique_name ZDM12201_phx1xx

Logfile Location: /var/opt/oracle/log/ZDM12201/registerdb/registerdb_2019-08-14_05:45:27.264851309165.log

Running prereqs

DBAAS CLI version 18.2.3.2.0

Executing command registerdb prereqs --db_unique_name ZDM12201_phx1xx

INFO: Logfile Location: /var/opt/oracle/log/ZDM12201/registerdb/registerdb_2019-08-14_05:45:29.000432309894.log

INFO: Prereqs completed successfully

Prereqs completed

Running OCDE .. will take time ..

OCDE Completed successfully.

INFO: Database ZDM12201 registered as Cloud database

/root>

パッチの適用 ターゲット・プラットフォームで提供されるコンソールまたはコマンドとAPIを使用して、移行したデータベースにパッチが適用できることを確認します。 なし
バックアップの作成 ターゲット・プラットフォームで提供されるコンソールまたはコマンドとAPIを使用して、移行したデータベースをバックアップできることを確認します。 なし