6 ハイブリッド・オフライン移行の実行

ZDMでは、RMANによるトランスポータブル表領域およびデータ・ポンプ・メタデータのインポート/エクスポートを使用した、クロス・プラットフォームおよびクロス・バージョンの移行のために、ハイブリッドでクロス・プラットフォームのトランスポータブル表領域(XTTS)データベース移行のサポートが導入されています。

Oracle Base Database Service、Oracle Exadata Database Service on Dedicated Infrastructure、Oracle Exadata Database Service on Cloud@Customer ServiceおよびOracle Exadata Database Machineオンプレミス・データベースへのハイブリッド・オフライン移行を実行できます。

6.1 概要

ハイブリッド移行は、事前チェック、データ転送、同期および事後チェックのZDMの実績ある方法に従います。ZDMがハイブリッド移行のために実行するいくつかのフェーズは手動で行われますが、全体的なワークフローは次のように要約されます:

  1. ZDMは、ソース・データベースおよびターゲット・データベースに接続し、次の検証を実行します:
    1. ZDM_VALIDATE_TGTフェーズ: ZDMはターゲット・データベースに接続し、検証を実行します。
    2. ZDM_VALIDATE_SRCフェーズ: ZDMはソース・データベースに接続し、検証を実行します。
    3. ZDM_SETUP_XTTS_SRCフェーズ: ZDMは必要なヘルパー・モジュールをソース・レベルで構成します。
    4. ZDM_SETUP_XTTS_TGTフェーズ: ZDMはターゲット・レベルで必要なヘルパー・モジュールを構成します。
  2. ZDMは表領域レベルのバックアップを編成します:
    1. 表領域の全体バックアップを実行します。
    2. 表領域の増分バックアップを実行します。
    3. 必要に応じてウォレット・ファイルをコピーします。
  3. ZDMは、表領域の完全リストアを外部表領域として実行します。
  4. ZDMは、ソース表領域を読取り専用として設定し、次のステップを実行します:
    1. RMANを使用して、表領域の増分バックアップおよび表領域のメタデータ・エクスポートを実行します。
    2. 必要に応じてウォレット・ファイルをコピーします。
  5. ZDMは、データ・ポンプを介してメタデータをエクスポートします。エクスポートの内容は、次のとおりです:
    • メタデータ
    • PL/SQLオブジェクト
    • 非表領域データ
  6. ZDMはメタデータをインポートし、次のように増分リストアを実行します:
    1. データ・ポンプからユーザー・メタデータのインポート。
    2. RMANを使用した増分リストアと、RMANによって生成された表領域メタデータのインポート。
    3. 他のすべてのメタデータ(オブジェクトおよび非表領域のデータ)をインポートします。
  7. ZDMは、事後アクションを実行し、クリーン・アップおよび最終処理を実行します。

6.2 前提条件

Zero Downtime Migrationサービス・ホストの要件

ZDMのサービス・ホスト要件、インストールおよび全体的な構成関連情報については、「Zero Downtime Migrationソフトウェアの設定」のトピックを参照してください。

6.3 ソース・データベースの要件

  • ソース・データベースとターゲット・データベースのタイムゾーンは同じである必要があります。
  • ソース・データベースとターゲット・データベースには、同じ文字セットとNLS文字セットが必要です。
  • ソース互換バージョンは、ターゲット・データベースと同じかそれより低いバージョンに設定する必要があります。

6.4 ターゲット・データベースの要件

  • ターゲット・コンテナ・データベースには、ソース・データベースの表領域と同じ名前を共有する表領域を含めることはできません。ソース・データベース表領域がターゲット・レベルに存在する場合、データ・ポンプはエラーをスローします。その他の前提条件は次のとおりです:
    • ソース・データベースは、Oracle Database 11.2.0.4以上である必要があります。
    • この機能を使用できるのは、Oracle Database 19c (19.24)のみです。

      ターゲット・データベースについて、35564253で使用可能な修正が含まれていることを確認します。

      移行するソース表領域をターゲット・データベースに配置しないでください。配置すると、データ・ポンプのインポートが失敗します。

  • ハイブリッド移行のソースおよびターゲット・データベース・ユーザーには、SYSDBAが必要です。これは、ZDMでRMANを使用して表領域メタデータのインポート/エクスポートが実行されるためです。

6.5 暗号化の要件

  • TDE暗号化されたソース・データベースでは、暗号化された表領域を使用して、ターゲット・レベルでもTDEを構成します。
  • ソースおよびターゲットのTDEパスワードを指定するには、次を実行します:
    • zdmcli migrate databaseでのZDMCLIコマンドラインの使用
      • ソース・データベースの場合、-tdekeystorepasswd
      • ターゲット・データベースの場合、-tgttdekeystorepasswd
    • 次のレスポンス・ファイル・パラメータを使用します:
  • 暗号化されていないソース・データベースを移行しても、ターゲット・データベースは暗号化されません。移行後にターゲット・レベルで暗号化を実行する必要があります。

6.6 中間ストレージの要件

ソース・データベースとターゲット・データベース間のNFSまたは共有ストレージには、すべてのRMANバックアップおよびデータ・ポンプ・ダンプ・ファイルを保持するための十分なストレージが必要です。RMANバックアップの圧縮を指定すると、領域が削減されますが、領域がソース・データベースのサイズ以上になるようにします。RMAN圧縮は、RMANSETTINGS_COMPRESSIONALGORITHMパラメータを使用して指定できます。

6.7 接続要件

ハイブリッド移行の接続要件は、物理移行および論理移行と同じです。ソース・データベースとターゲット・データベースのSSH接続が必要です。ZDMサーバーとソース・データベースとターゲット・データベースとの間にSQL*Net接続が必要です。

SSHの設定については、次のトピックを参照してください:

SQL*Netの設定については、「SSHアクセスを使用した物理移行および論理移行」のトピックを参照してください。

6.8 ハイブリッド・オフライン移行の準備

前提条件に従ってレスポンス・ファイルを作成します。次に、最小限必要なパラメータを含むサンプル・ファイルを示します。パラメータは、環境に関連する値に置き換えることができます:

MIGRATION_METHOD=OFFLINE_XTTS DATA_TRANSFER_MEDIUM=NFS SOURCEDATABASE_ADMINUSERNAME= source database admin username SOURCEDATABASE_CONNECTIONDETAILS_HOST= hostname or ip address SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME= source service name or alias SOURCEDATABASE_CONNECTIONDETAILS_PORT= listener port number TARGETDATABASE_ADMINUSERNAME= source database admin username TARGETDATABASE_CONNECTIONDETAILS_HOST= hostname or ip address TARGETDATABASE_CONNECTIONDETAILS_PORT= listener port number TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME= target service name or alias DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME= name of the directory object DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH= path of the directory object DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME= name of the directory object DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATH= path of the directory object WALLET_TARGETADMIN= wallet path WALLET_SOURCEADMIN= wallet path

6.9 データベースの移行

前提条件に従い、レスポンス・ファイルを作成した後、このサンプル移行コマンドに最小限必要なオプションを指定して実行し、環境に関連する値に置き換えます:

$ZDM_HOME/bin/zdmcli migrate database -sourcesid source_oracle_sid (use this parameter if the source is a single instance DB without Grid Infrasctructure) otherwise use -sourcedb source_db_unique_name_value (use this parameter is the source is configured with Grid Infrastructure) -sourcenode source-db-host-name -srcauth zdmauth -srcarg1 user:source_database_server_login_user_name -srcarg2 identity_file:ZDM_installed_user_private_key_file_location -srcarg3 sudo_location:/bin/sudo -targetnode target-db-host-name -rsp /home/zdmuser/hybrid_online.rsp -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 

6.10 トラブルシューティング

トラブルシューティングについては、次のログを確認してください:

  • ZDMサーバー・ログ: $ZDM_BASE/crsdata//rhp/zdmserver.log.XYZ
  • ソースのZDM perlログ: $ORACLE_BASE/zdm_<db_unique_name_<zdm job id>/log/
  • ターゲットのZDM perlログ: $ORACLE_BASE/zdm_<db_unique_name_<zdm job id>/log/
  • レスポンス・ファイルのエントリDATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATHに指定された場所からログ・ファイルをエクスポートします
  • レスポンス・ファイルのエントリDATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATHに指定された場所からログ・ファイルをインポートします

次に、ワークフロー・フェーズとそれらの簡単な説明を実行順で示します。

フェーズ名 説明
ZDM_VALIDATE_TGT ターゲットで検証を実行します
ZDM_VALIDATE_SRC ソースで検証を実行します
ZDM_SETUP_XTTS_SRC ソース・サーバーでZero Downtime Migrationヘルパー・モジュールを設定します
ZDM_SETUP_XTTS_TGT ターゲット・サーバーでZero Downtime Migrationヘルパー・モジュールを設定します
ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC エクスポート・ディレクトリ・オブジェクトを検証し(該当する場合)、指定されたユーザーについてダンプをエクスポートするための十分なソース・データベースの領域および権限があるかどうかを確認します。
ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT データ・ポンプ・インポート・ディレクトリ・オブジェクトが存在することを確認します。
ZDM_VALIDATE_XTTS_SRC 表領域の自己包含など、ソースでXTTS関連の検証を実行します
ZDM_VALIDATE_XTTS_TGT 移行に含まれている表領域名がすでに使用されていないことの確認など、ターゲットでXTTS関連の検証を実行します
ZDM_XTTS_BACKUP_FULL_SRC ソース表領域の完全バックアップを実行します(初期L0)
ZDM_XTTS_BACKUP_INCR_SRC ソース表領域の2番目のバックアップ(第1L1)
ZDM_XTTS_COPYFILES ターゲットでリストアを実行するために必要なファイル(ソース検出ファイル、トランスポートxml、TDEウォレットなど)をコピーします。
ZDM_XTTS_RESTORE_FULL_TGT ターゲットで表領域の初期リストアを実行します
ZDM_XTTS_BACKUP_INCR_RO_SRC 表領域を読取り専用に設定し、表領域の3番目および最後のバックアップを取得します(第2L1)。また、RMANで表領域のメタデータのデータポンプ・ダンプをエクスポートします
ZDM_XTTS_COPYFILES_RO 最新のトランスポートxmlとTDEウォレット(そのウォレットに対する変更内容を考慮するため)など、ターゲットでリストアを実行するために必要なファイルをコピーします
ZDM_PREPARE_DATAPUMP_SRC 必要に応じて、データ・ポンプの新しいディレクトリ・オブジェクトを作成します。
ZDM_PREPARE_DATAPUMP_TGT 必要に応じて、データ・ポンプの新しいディレクトリ・オブジェクトを作成します。
ZDM_DATAPUMP_EXPORT_METADATA_SRC RMANデータポンプ実行でエクスポートした表領域メタデータ以外の、その他のソース・メタデータ(ユーザー、PL/SQL、トリガーなど)をエクスポートします。
ZDM_TRANSFER_DUMPS_METADATA_SRC  
ZDM_DATAPUMP_IMPORT_USER_TGT 1番目のインポートとしてユーザーとプロファイルをインポートして、後続の表領域インポートを正常に実行できるようにします
ZDM_XTTS_RESTORE_INCR_TGT RMANを実行して、ZDM_XTTS_BACKUP_INCR_RO_SRCフェーズの間にRMANでエクスポートした表領域メタデータの最終リストアおよびインポートを実行します
ZDM_DATAPUMP_IMPORT_TGT 以前のインポートで実行していない、ユーザー、プロファイルおよび表領域以外のその他のメタデータをインポートします
ZDM_POST_DATAPUMP_SRC Zero Downtime Migrationによって作成されたデータ・ポンプ・ディレクトリ・オブジェクトを削除します
ZDM_POST_DATAPUMP_TGT ターゲット・データベース内の無効なオブジェクトを修正します。
ZDM_REFRESH_MVIEW_TGT  
ZDM_POST_ACTIONS  
ZDM_CLEANUP_SRC 設定フェーズの間にコピーしたヘルパー・モジュールの削除など、ソースでクリーン・アップを実行します
ZDM_CLEANUP_TGT 設定フェーズの間にコピーしたヘルパー・モジュールの削除など、ターゲットでクリーン・アップを実行します
これらのパラメータの詳細は、「Zero Downtime Migrationハイブリッド移行レスポンス・ファイル・パラメータのリファレンス」のトピックを参照してください。ハイブリッド移行の場合は、次のパラメータが適用されます:
  • MIGRATION_METHOD=OFFLINE_XTTS
  • DATA_TRANSFER_MEDIUM=NFS
  • SOURCEDATABASE_CONNECTIONDETAILS_HOST
  • SOURCEDATABASE_CONNECTIONDETAILS_PORT
  • SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME
  • SOURCEDATABASE_ADMINUSERNAME
  • TARGETDATABASE_CONNECTIONDETAILS_HOST
  • TARGETDATABASE_CONNECTIONDETAILS_PORT
  • TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME
  • TARGETDATABASE_ADMINUSERNAME
  • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME
  • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH
  • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME
  • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATH
  • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE
  • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE
  • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_NOCLUSTER=FALSE
  • DATAPUMPSETTINGS_EXPORTVERSION
  • DUMPTRANSFERDETAILS_PUBLICREAD=FALSE
  • IGNOREEXPORTERRORS
  • IGNOREIMPORTERRORS
  • RMANSETTINGS_BACKUPTAG
  • RMANSETTINGS_COMPRESSIONALGORITHM=MEDIUM
  • RMANSETTINGS_PUBLICREAD=FALSE
  • RMANSETTINGS_RETENTIONWINDOW
  • RMANSETTINGS_SECTIONSIZE=64G
  • RMANSETTINGS_SRCCHANNELS=10
  • RMANSETTINGS_TGTCHANNELS=10
  • SOURCEDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_IDENTITYFILE
  • SOURCEDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_IP
  • SOURCEDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_PORT
  • SOURCEDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_REMOTEHOSTIP
  • SOURCEDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_USERNAME
  • SOURCEDATABASE_CONNECTIONDETAILS_PROXYDETAILS_HOSTNAME
  • SOURCEDATABASE_CONNECTIONDETAILS_PROXYDETAILS_PORT
  • SOURCEDATABASE_CONNECTIONDETAILS_PROXYDETAILS_PROTOCOL
  • SOURCEDATABASE_ENVIRONMENT_DBTYPE=ORACLE
  • SOURCEDATABASE_ENVIRONMENT_NAME=ORACLE
  • TABLESPACEDETAILS_EXCLUDE=
  • TARGETDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_IDENTITYFILE
  • TARGETDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_IP
  • TARGETDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_PORT
  • TARGETDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_REMOTEHOSTIP
  • TARGETDATABASE_CONNECTIONDETAILS_BASTIONDETAILS_USERNAME
  • TARGETDATABASE_CONNECTIONDETAILS_PROXYDETAILS_HOSTNAME
  • TARGETDATABASE_CONNECTIONDETAILS_PROXYDETAILS_PORT
  • TARGETDATABASE_CONNECTIONDETAILS_PROXYDETAILS_PROTOCOL
  • TARGETDATABASE_DBTYPE
  • WALLET_DATAPUMPENCRYPTION
  • WALLET_SOURCEADMIN
  • WALLET_TARGETADMIN
  • WALLET_TDEKEYSTORE
  • WALLET_TGTTDEKEYSTORE
  • WALLET_USERACTION