ZDMによるAutonomous Migrationの基礎とCPATとの連携 (2022/03/31)
ZDMによるAutonomous Migrationの基礎とCPATとの連携 (2022/03/31)
今回で3回目の投稿になりますが、ZDM(Zero Downtime Migration)を使った移行について、以前はオフラインとオンラインの物理的な移行について書きました。今回は、OracleがAutonomous Databaseについてよく話しているので、Autonomousへの移行についてどんなオプションがあるか見てみましょう。
Autonomousへの移行には、論理的なオフライン移行と論理的なオンライン移行の2つのオプションがあります。専門用語で言うと、1つ目はデータポンプを使った移行で、2つ目はGoldenGateを使った移行であります。この記事では、オフラインマイグレーションの部分に焦点を当てます。
移行時のCPAT
今回はAutonomous Databaseに移行する際に問題がないことを確認したいと思います。OracleにはSchema Advisorというツールがあり、移行元のデータベースで実行することで移行に問題がないことを確認できることを覚えているかと思います。このツールの最新版はCloud Premigration Analyser Toolと呼ばれ、詳細はnote 2758371.1に記載されています。
このツールは現在、ZDMと統合されています。zdmcliから実行することで、結果にアクセスすることができます。
まず、zdm_logical_template.rsp という論理テンプレートから新しいレスポンスファイルを作成します。物理テンプレートと比較して、こちらはオプションや設定変数が非常に多くなっています。
レスポンスファイルの設定が完了したと仮定して、フラグ -advisor を指定して zdmcli migrate を実行します。これで、ソースノードから見つけることができるレポートが作成されます。zdm サーバから探すのはやめましょう!
ZDM ログファイルには、レポート自体からの出力が残っており、最初にそれを確認してから、CPAT レポートをドリルダウンすることができます。
bastion: 2022-03-22T15:05:14.405Z : Running CPAT (Cloud Premigration Advisor Tool) on the source node prod ...bastion: 2022-03-22T15:05:28.994Z : Premigration advisor output:Cloud Premigration Advisor Tool Version 22.5.2Cloud Premigration Advisor Tool completed with overall result: WARNINGCloud Premigration Advisor Tool generated report location: /u01/app/oracle/zdm/zdm_PROD_6/out/premigration_advisor_report.jsonCloud Premigration Advisor Tool generated report location: /u01/app/oracle/zdm/zdm_PROD_6/out/premigration_advisor_report.txt CPAT exit code: 2 RESULT: WARNINGSchemas Analyzed (2): PDBUSER,TFGA total of 47 checks were performedThere were 0 checks with FATAL resultsThere were 0 checks with BLOCKER resultsThere were 2 checks with WARNING results: xdb_resource_view_has_entries (78 relevant objects), has_directories (3 relevant objects)There were 5 checks with INFORMATIONAL results: modified_db_parameters_serverless (32 relevant objects), has_enabled_scheduler_jobs (14 relevant objects), has_default_tablespace_not_data (2 relevant objects), options_in_use_not_available_serverless (1 relevant objects), has_trusted_server_entries (1 relevant objects) xdb_resource_view_has_entries RESULT: WARNINGSchemas Analyzed (2): PDBUSER,TFGA total of 47 checks were performedThere were 0 checks with FATAL resultsThere were 0 checks with BLOCKER resultsThere were 2 checks with WARNING results: xdb_resource_view_has_entries (78 relevant objects), has_directories (3 relevant objects)There were 5 checks with INFORMATIONAL results: modified_db_parameters_serverless (32 relevant objects), has_enabled_scheduler_jobs (14 relevant objects), has_default_tablespace_not_data (2 relevant objects), options_in_use_not_available_serverless (1 relevant objects), has_trusted_server_entries (1 relevant objects) xdb_resource_view_has_entries RESULT: WARNING DESCRIPTION: XDB Repository is not supported in ADB. Entries in RESOURCE_VIEW will not migrate. ACTION: Applications must be updated to remove their dependencies on XDB Repository.has_directories RESULT: WARNING DESCRIPTION: There are directories objects in the source database. ACTION: Recreate the directories on the Autonomous database instance.bastion: 2022-03-22T15:05:28.996Z : Execution of phase ZDM_PRE_MIGRATION_ADVISOR completed私のソースデータベースは、私が作成した1つのスキーマを持つダミーPDBであるため、実際のレポートには多くの項目が発生しないのです。データベースサーバーからレポートをダウンロードして、詳しく見ることができます。
CPATは、例えば、ROWIDカラムがあると移行されないなど、移行に関する警告やショーストッパーを表示します。ですから、移行する前に必ずレポートをよく見てください。
CPATの例ですが、実際はもっと長く、各フェーズについて詳しく書かれています。
Number of checks run: A total of 47 checks were performed Number of schemas analyzed: 2 Number of schemas in source DB: 37 List of schemas analyzed: PDBUSER, TFG Fatal Checks: There were 0 checks with FATAL results Blocking Checks: There were 0 checks with BLOCKER results Warning Checks: There were 2 checks with WARNING results: xdb_resource_view_has_entries (78 relevant objects), has_directories (3 relevant objects) Informational Checks: There were 5 checks with INFORMATIONAL results: modified_db_parameters_serverless (32 relevant objects), has_enabled_scheduler_jobs (14 relevant objects), has_default_tablespace_not_data (2 relevant objects), options_in_use_not_available_serverless (1 relevant objects), has_trusted_server_entries (1 relevant objects) Passing Checks: There were 40 checks with PASS results: max_data_files_allowed (4 relevant objects), has_low_streams_pool_size (2 relevant objects), timezone_table_compatibility_higher(1 relevant objects), has_data_in_other_tablespaces_serverless (1 relevant objects), has_user_defined_objects_in_sys (0 relevant objects), lcm_super_admin_user_exists (0 relevant objects), has_fmw_registry_in_system (0 relevant objects), has_users_with_10g_password_version (0 relevant objects), nls_national_character_set (0 relevant objects), has_java_objects (0 relevant 論理的オフライン移行用ZDMテンプレートファイル
テンプレートファイルを見ると、物理的な移行に比べてオプションが多くなっているので、一通り確認して、必要な設定をすべて行ったことを確認します。今回のDB接続では、Autonomous OCIDやその他の詳細を指定し、ZDMが自動的に必要な値を取得できるようにします。
いくつかの例を挙げます。
SOURCEDATABASE_ENVIRONMENT_DBTYPE は RDS_ORACLE で、Amazon RDS から移行する場合、適宜設定します。
DATAPUMPSETTINGS_JOBMODEには、FULL、SCHEMA、TABLE、TABLESPACE、TRANSPORTABLEを指定できるので、実行するデータポンプモードのオプションを提供します。
DATAPUMPSETTINGS_FIXINVALIDOBJECTS これは、マイグレーション後に無効なオブジェクトをコンパイルできるようにするものです。
基本的に、データポンプ設定には膨大な数のオプションがあり、これは素晴らしいことです。マイグレーションをできる限りカスタマイズしたいものです。オブジェクトを除外したり、含めたり、メタデータを再マッピングしたり。Golden Gateのオプションは、オンライン移行を行う場合、テンプレートファイルにも含まれています。
その他、今回の移行のためにテンプレートに設定した内容です。
TARGETDATABASE_OCID=ocid1.autonomousdatabase.oc1.phx.anyhqljt6iltiayabgknkdp7sk7ekluxtbmuuuv3reu4ge5z62eg6sq3453dTARGETDATABASE_ADMINUSERNAME=adminSOURCEDATABASE_ADMINUSERNAME=systemSOURCEDATABASE_CONNECTIONDETAILS_HOST=prod-scan.subnetdns.vcndns.oraclevcn.comSOURCEDATABASE_CONNECTIONDETAILS_PORT=1521SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME=PDB2.subnetdns.vcndns.oraclevcn.comOCIAUTHENTICATIONDETAILS_REGIONID=us-phoenix-1OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID=ocid1.tenOCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID=ocid1.user.oOCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT=b今回のマイグレーションでは、他の変数には手を付けず、単純なマイグレーションとCPATを見ることが主な目的でした。
Autonomous Databaseへの移行
再びzdmcliを実行し、今度はadvisorフラグを外した状態です。これは先ほど言ったように、論理的なオフライン(データポンプ)移行になります。
[zdmuser@bastion bin]$ ./zdmcli migrate database -sourcedb PROD_yyz1c4 -sourcenode prod -rsp /home/zdmuser/zdm_offline_logical2.rsp -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa -srcarg3 sudo_location:/usr/bin/sudobastion.subnetpublic.vcndns.oraclevcn.com: Audit ID: 24Enter source database administrative user "system" password:Enter target database administrative user "admin" password:先ほどの記事にもありましたが、仕事の状況を問い合わせるだけで、その進捗がわかるようになっています。
Job execution elapsed time: 1 hours 2 minutes 44 secondsZDM_VALIDATE_TGT ...................... COMPLETEDZDM_VALIDATE_SRC ...................... COMPLETEDZDM_SETUP_SRC ......................... COMPLETEDZDM_PRE_MIGRATION_ADVISOR ............. COMPLETEDZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... COMPLETEDZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... COMPLETEDZDM_PREPARE_DATAPUMP_SRC .............. COMPLETEDZDM_DATAPUMP_ESTIMATE_SRC ............. COMPLETEDZDM_PREPARE_DATAPUMP_TGT .............. COMPLETEDZDM_DATAPUMP_EXPORT_SRC ............... COMPLETEDZDM_UPLOAD_DUMPS_SRC .................. COMPLETEDZDM_DATAPUMP_IMPORT_TGT ............... COMPLETEDZDM_POST_DATAPUMP_SRC ................. COMPLETEDZDM_POST_DATAPUMP_TGT ................. COMPLETEDZDM_POST_ACTIONS ...................... COMPLETEDZDM_CLEANUP_SRC ....................... COMPLETEDすべてが完了したら、必要な検証を行い、ZDMのログファイルを見て、インポートの問題や失敗を確認することができます。もし失敗したら(以前、私が経験しました!)、特定のステップで停止するので、問題のデバッグを続けることができます。
まとめ
Autonomousへの移行は、ZDMによるもう一つのほぼ完全な自動化ステップです。データポンプの設定に注意を払う必要がありますが、おそらく正しく設定するのに数回かかるでしょう。CPATとの統合が追加されたことは歓迎すべきことです。ZDMのマイグレーションステップの一部としてCPATを持つことができれば、プロセス全体がより合理化されます。
ZDM を使って、賢くなりましょう
コメント
コメントを投稿