Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TechNight_FY23_MAR_#65_2_OracleDatabaseMigrationToolTips

 TechNight_FY23_MAR_#65_2_OracleDatabaseMigrationToolTips

oracle4engineer

March 24, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Database移⾏ツールの概要とTips Oracle Database Technology Night #65-2 ⼭⽥恭平 / 宮本拓弥

    ⽇本オラクル株式会社 クラウド・エンジニアリング統括 COE本部 データベース・ソリューション部 2023年 3⽉
  2. 主な移行方式一覧 移行ツール 移行対象 最低移行元バー ジョン(サポート中 のDBのみ記載)(*1) 移行元 エディション アップグレード 可否

    ビックエンディアン からの変換 スキーマ構成 の変更 non-CDBか らCDBへの 移行 停止時間 補足 Data Pump DB/表領域/ スキーマ/表 11.2.0.4 SE~ 〇 〇 〇 〇 大~中 RMAN Backup/Restore DB 11.2.0.4 SE~ 〇 〇(一部制限あり) × ×(*3) 中~小 RMAN Duplicate DB 11.2.0.4 SE~ 〇 〇(一部制限あり) × × 小 Transportable Tablespaces 表領域 11.2.0.4 EE 〇 〇(一部制限あり) × 〇 中~小 移行先DBはEE以上が必要 Full Transportable export/import DB 11.2.0.4 EE 〇 〇(一部制限あり) × 〇 中~小 移行先DBはEE以上が必要 移行先DBバージョンは12.1.0.1以降 RMAN Transportable Tablespaces DB/表領域 11.2.0.4 EE 〇 〇(一部制限あり) × 〇 中~小 移行先DBはEE以上が必要 PDB Unplug/Plug PDB 12.1.0.2 SE~ 〇 × × × 中~小 PDB Clone PDB 12.1.0.2 SE~ 〇 × × × 小 Non-CDB Clone DB 12.1.0.2 SE~ × × × 〇 小 Data Guard DB 11.2.0.4 EE × × × × 極小 移行先DBはEE以上が必要 GoldenGate DB/表領域/ スキーマ/表 11.2.0.4(*2) SE~+ GoldenGate 〇 〇 〇 〇 極小 ダウンタイムを極小化したい場合に 他の移行方式と併用しての利用を推奨 Zero Downtime Migration(ZDM) DB 11.2.0.4 SE~ 〇 〇(AIX,Solarisのみ) 〇 〇 極小 Oracle Cloud Infrastructureへの移行 移行元ライセンスによって 選択可能な移行方式が異なる Database Migration Service DB 11.2.0.4 SE~ 〇 × × 〇 極小 Oracle Cloud Infrastructureへの移行 ZDMの論理移行をフルマネージドサー ビスで提供 アップグレードを伴う 移⾏は〇から選択 (*1)サポートされている最低バージョン。これよりも古いバージョンでのサポート可否は都度確認が必要。 (*2)利⽤製品/バージョン/OS等、ソースDBのサポート可否は都度確認が必要。 (*3)non-CDBが18c以降である場合はDBMS_PDB.EXPORTRMANBACKUPを活⽤することで実現可能 https://oracle-base.com/articles/18c/multitenant-usable-backups-of-non-cdbs-and-relocated-pdbs-18c Copyright © 2023, Oracle and/or its affiliates 4
  3. 本⽇紹介する機能/ツール Copyright © 2023, Oracle and/or its affiliates 5 •

    Data Pump • Zero Downtime Migration 下記の機能について概要とTipsを紹介
  4. Copyright © 2023, Oracle and/or its affiliates 7 n Data

    Pumpの概要 n 必要および推奨の設定項⽬ n Data Pumpのパラメータの指定 n 参考資料 Agenda
  5. Copyright © 2023, Oracle and/or its affiliates 9 特徴 •

    Oracle Database 10gから導⼊されたデータおよびメタデータをデータベース間で移⾏するためのユーティリティ • オブジェクトごと(データベース、表領域、スキーマ、表)による移⾏が可能 • エンディアン間のデータの移⾏が可能 • ⾮CDBからPDBへの移⾏が可能 • データベース構造の変更を伴う移⾏が可能 • アップグレードを伴う移⾏が可能 ⼿順 1. ターゲット(移⾏先)DBを構築 2. 事前設定 3. ソース(移⾏元)DBからdumpファイルにexport 4. dumpファイルを転送 5. ターゲットDBにdumpファイルからimport Data Pumpの概要 ソースDB ターゲットDB ダンプ・ファイル
  6. ダンプ・ファイルを使⽤した移⾏とデータベース・リンクを使⽤した移⾏の⽐較 Data Pumpの概要 Copyright © 2023, Oracle and/or its affiliates

    10 ダンプ・ファイル データベース・リンク • ファイル・システムへの接続が必要 • ダンプ・ファイルのためのディスク領域の確保が必要 • 機能の制限なし • SQL*Netへの接続 • ディスク領域の追加の必要がない • 機能に制限あり
  7. アーキテクチャ Data Pumpの概要 Copyright © 2023, Oracle and/or its affiliates

    11 実⾏ユーザ 制御プロセス 制御表 キュー ワーカー・プロセス ダンプ・ファイル expdp/ impdp
  8. ⼀覧 ü 移⾏スキーマの準備 ü 出⼒先ディレクトリの準備 ü 初期化パラメータSTREAMS_POOL_SIZEの設定 ü ディクショナリ統計の収集 ü

    パラメータ・ファイルの使⽤ 必要および推奨の設定項⽬ Copyright © 2023, Oracle and/or its affiliates 13
  9. SQL> create user dpuser identified by oracle; SQL> grant datapump_exp_full_database

    to dpuser; SQL> grant datapump_imp_full_database to dpuser; SQL> alter user dpuser quota unlimited on users; 移⾏スキーマの準備 必要および推奨の設定項⽬ Copyright © 2023, Oracle and/or its affiliates 14 19c データベース・ユーティリティ・ガイド Data Pumpを実⾏するためのスキーマを準備する(専⽤のスキーマ作成を推奨) エクスポートおよびインポート操作に必要な権限を付与する SYS AS SYSDBAは使⽤しない
  10. 出⼒先ディレクトリの準備 必要および推奨の設定項⽬ Copyright © 2023, Oracle and/or its affiliates 15

    $ mkdir /home/oracle/dp SQL> create directory dpdir as '/home/oracle/dp'; SQL> grant read, write on directory dpdir to dpuser; SQL> select directory_path from dba_directories where directory_name=‘DPDIR'; Oracle Data Pumpの処理はすべてクライアントベースではなくサーバーベースで⾏われるため、処理を⾏うディレクトリの 位置が特定されている必要がある ダンプ・ファイルを出⼒するディレクトリを作成し、ディレクトリ・パスをディレクトリ・オブジェクトとして指定し、Data Pumpに よる移⾏を実⾏するユーザにディレクトリに対するREAD, WRITE権限を付与する 確認コマンド
  11. 初期化パラメータSTREAMS_POOL_SIZEの設定 必要および推奨の設定項⽬ Copyright © 2023, Oracle and/or its affiliates 16

    SQL> select current_size/1024/1024 as current_size_mb from v$sga_dynamic_components where component='streams pool'; 初期化パラメータSTREAMS_POOL_SIZEの値を確認する Data Pumpではメモリ領域であるSTREAMS_POOL_SIZEを使⽤して処理を⾏うため、領域の確保が必要 SQL> alter system set streams_pool_size=256m scope=both; 64Mから256Mの範囲に指定することを推奨
  12. パラメータ・ファイルの使⽤ 必要および推奨の設定項⽬ Copyright © 2023, Oracle and/or its affiliates 18

    $ expdp dpuser schemas=app directory=dp_dir logfile=export_app.log parallel=8 ... コマンドラインでの実⾏ Data Pumpのエクスポートおよびインポートは、以下2つの⽅法で実⾏が可能 $ cat export.par schemas=app directory=dp_dir logfile=export_app.log parallel=8 ... $ expdp dpuser parfile=export.par パラメータ・ファイルを使⽤した実⾏ – 推奨
  13. ⼀覧 ü FULL/SCHEMAS/TABLES/TABLESPACES/TRANSPORT_TABLESPACES ü EXCLUDE ü LOGTIME/METRICS ü PARALLEL ü

    DUMPFILE/FILESIZE ü COMPRSESSION/COMPRESSION_ALGORITHM ü FLASHBACK_SCN/FLASHBACK_TIME ü CHECKSUM_ALGORITHM/ VERIFY_ONLY/VERIFY_CHECKSUM ü TRANSFORM ü ESTIMATE/ESTIMATE_ONLY Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates 20
  14. FULLパラメータ、SCHEMASパラメータ、TABLESパラメータ、TABLESPACESパラメータ、 TRANSPORT_TABLESPACESパラメータ モード 機能説明 パラメータ 全体 データベース全体のエクスポート FULL=[YES | NO]

    スキーマ 指定したスキーマ全体のエクスポート SCHEMAS=schema_name [, ...] 表 指定したテーブル全体のエクスポート TABLES=[schema_name.]tabl e_name[:partition_name] [, ...] 表領域 指定したテーブルスペース全体のエクス ポート TABLESPACES=tablespace_na me [, ...] トランスポータブル表領域 トランスポータブル表領域エクスポートを実⾏するた めに使⽤する TRANSPORT_TABLESPACES=t ablespace_name [, ...] Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates 21 実⾏したい移⾏モードに該当するパラメータを指定する
  15. EXCLUDEパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    22 EXCLUDEパラメータを使⽤してエクスポートの際にオプティマイザ統計情報を除外する インポート後に︓ • ターゲット・データベースで統計情報を収集する • もしくは、DBMS_STATSを使⽤して統計情報を移⾏する #通常のエクスポートの場合 expdp ... exclude=statistics #トランスポータブル表領域の場合 expdp ... exclude=table_statistics,index_statistics
  16. LOGTIMEパラメータ、METRICSパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    23 LOGTIMEパラメータおよびMETRICSパラメータを使⽤してログファイルに診断情報が常に含まれるように指定する expdp ... logtime=all metrics=yes impdp ... logtime=all metrics=yes Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA . . imported "METAL"."ALBUMS" 988.8 KB 28069 rows . . imported "METAL"."BANDS" 3.444 MB 37723 rows . . imported "METAL"."REVIEWS" 66.47 MB 21510 rows 16-OCT-20 17:26:57.158: Processing object type SCHEMA_EXPORT/TABLE/TABLE 16-OCT-20 17:26:58.262: Startup took 1 seconds 16-OCT-20 17:26:58.264: Startup took 1 seconds 16-OCT-20 17:26:59.082: Completed 3 TABLE objects in 1 seconds 16-OCT-20 17:26:59.082: Completed by worker 1 1 TABLE objects in 1 seconds 16-OCT-20 17:26:59.082: Completed by worker 2 1 TABLE objects in 0 seconds 16-OCT-20 17:26:59.082: Completed by worker 3 1 TABLE objects in 0 seconds 16-OCT-20 17:26:59.313: Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA 16-OCT-20 17:27:01.943: . . imported "METAL"."ALBUMS" 988.8 KB 28069 rows in 2 seconds using external_table 16-OCT-20 17:27:03.778: . . imported "METAL"."BANDS" 3.444 MB 37723 rows in 2 seconds using external_table 16-OCT-20 17:27:12.644: . . imported "METAL"."REVIEWS" 66.47 MB 21510 rows in 13 seconds using external_table 指定なしの場合: 指定ありの場合:
  17. PARALLELパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    24 PARALLELパラメータを使⽤することで、複数のダンプ・ファイルに対して同時にデータの書き込みが可能なため、 エクスポートとインポートの処理速度を上げることができる ※Enterprise Edition限定 • PARALLEL値の参考値はCPUコア数×2 • PARALLEL値は、ダンプ・ファイル・セット内のファイル数以下にする必要がある expdp ... parallel=n impdp ... parallel=n
  18. DUMPFILEパラメータ、FILESIZEパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    27 DUMPFILEパラメータに置換変数を指定することで複数のファイルに書き込むように指定できる(最⼤99まで) FILESIZEパラメータによって1つのダンプ・ファイルの最⼤サイズを指定できる %Lを指定することで最⼤2,147,483,646までファイルを作成可能(12.2以降のバージョンのみ対応) expdp ... dumpfile=mydump%U.dmp filesize=5g expdp ... dumpfile=mydump%L.dmp filesize=5g 作成されるダンプ・ファイルの数とそれぞれのサイズを調整できる
  19. PARALLELパラメータとプロセスの関係 3つのサブパーティションをエクスポート – 合計で11個のプロセス • PARALLEL=6 • DUMPFILE=MyDump%L.dmp Data Pumpのパラメータの指定

    Copyright © 2023, Oracle and/or its affiliates 30 制御プロセス キュー ダンプ・ファイル USER1 TAB1 SUBPART1 SUBPART2 SUBPART3 ETC Metadata Unload Worker 1 ワーカー・プロセス Worker 6 ZZ Z Z Worker 5 ZZ Z Z user1:tab1:subpart1 PX1 - Unload PX2 - Unload Worker 2 Unload Worker 3 user1:tab1:subpart2 user1:tab1:subpart3 Worker 4 PX1 - Unload PX2 - Unload
  20. COMPRSESSIONパラメータ、COMPRESSION_ALGORITHMパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    31 COMPRESSIONパラメータおよびCOMPRESSION_ALGORITHMパラメータを使⽤することでエクスポートの処理速度 を上げることができる ※Advanced Compression Optionが必要 compression=all compression_algorithm=medium オプション 定義 BASIC 圧縮率と速度の適度な組合せが実現し、使⽤されるアルゴリズムはOracle Data Pumpの以前の バージョンと同じです。 LOW エクスポート・スループットへの影響が最⼩です。このオプションは、CPUリソースが制限要因となる環境 に適しています。 MEDIUM ほとんどの環境に適しています。このオプションはBASICオプションと同様、圧縮率と処理速度を加味し たよい組合せですが、BASICとは異なるアルゴリズムが使⽤されています。推奨 HIGH ネットワーク速度が限定要因となっている、速度が遅いネットワークでダンプ・ファイルがコピーされる状況 に最適です。
  21. FLASHBACK_SCNパラメータ、FLASHBACK_TIMEパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    32 FLASHBACK_SCNパラメータおよびFLASHBACK_TIMEパラメータを使⽤することで指定したSCNもしくは時刻における ⼀貫性を維持したデータのエクスポ ートが可能です ある時刻における⼀貫性を維持したデータをエクスポートするために FLASHBACK_TIMEパラメータを指定します あるSCNにおける⼀貫性を維持したデータをエクスポートするために FLASHBACK_SCNパラメータを指定します $ expdp dpuser ... flashback_time=systimestamp $ expdp dpuser ... flashback_scn=nnn • 指定する時刻やSCNのUNDOデータが残っている必要がある • UNDO表領域の容量やUNDO_RETENTIONの設定値を考慮する必要がある
  22. CHECKSUM_ALGORITHMパラメータ、 VERIFY_ONLYパラメータ、VERIFY_CHECKSUMパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its

    affiliates 33 チェックサム機能を使⽤すると、エクスポート時にダンプファイルのブロックにチェックサムを付与し、インポート時に検証を⾏う ことができる ※21cで追加された機能 エクスポートの際にCHECKSUM_ALGORITHMパラメータでチェックサムのアルゴリズムを指定する ※指定できるアルゴリズムは「CRC32」、「SHA256」、「SHA384」、「SHA512」 インポートの際にVERIFY_ONLYパラメータもしくはVERIFY_CHECKSUMパラメータを指定する expdp ... checksum_algorithm=sha384 impdp... verify_only=yes impdp ... verify_checksum=yes ※チェックサム機能を使⽤するには、COMPATIBLE初期化パラメータを 20.0以上に設定する必要がある
  23. TRANSFORMパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    34 LOBファイルが含まれている場合はTRANSFORMパラメータを使⽤してSecureFiles LOBに変換する impdp ... transform=lob_storage:securefile SecureFilesは、Oracle Database 12c以降で使⽤されるLOBのデフォルトの記憶域 メカニズムであり、LOBの格納および管理にはBasicFilesではなくSecureFilesを使⽤ することをお薦めします。BasicFilesは今後のリリースで⾮推奨になる予定です。 " Database SecureFilesおよびラージ・オブジェクト開発者ガイド
  24. ESTIMATEパラメータ、ESTIMATE_ONLYパラメータ Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    35 ESTIMATEパラメータおよびESTIMATE_ONLYパラメータを指定することでダンプファイルを⽣成せず、⽣成されるダンプ ファイルのサイズを⾒積もることが可能 ESTIMATEパラメータにモードの種類を指定し、ESTIMATE_ONLY=Yを指定することで実⾏する expdp ... estimate=blocks estimate_only=y モードの種類 定義 BLOCKS ブロックサイズにオブジェクトのブロック数をかけて⾒積もる(精度は⾼くない) STATISTICS 統計情報を元に⾒積もる
  25. パラメータファイルの記載例 Data Pumpのパラメータの指定 Copyright © 2023, Oracle and/or its affiliates

    36 schemas=app parallel=8 dumpfile=mydump%U.dmp filesize=5g exclude=statistics logtime=all metrics=yes compression=all compression_algorithm=medium flashback_scn=3392846 checksum_algorithm=sha384 schemas=app parallel=8 dumpfile=mydump%U.dmp exclude=statistics logtime=all metrics=yes transform=lob_storage:securefile verify_checksum=yes エクスポート⽤のパラメータ・ファイル(expdp.par) インポート⽤のパラメータ・ファイル(impdp.par)
  26. • マニュアル • https://docs.oracle.com/cd/F39414_01/sutil/oracle-data-pump.html#GUID-501A9908-BCC5- 434C-8853-9A6096766B5A • Oracle DatabaseユーティリティData Pump エクスポートとインポートのベスト・プラクティス

    • https://www.oracle.com/jp/a/tech/docs/oracle-database-utilities-data-pump-bp-2019-ja.pdf • ウェビナー動画 • Data Pump Extreme - Deep Dive with Development • https://www.youtube.com/watch?v=CUHcKHx_YvA • Oracle Data Pump - Best Practices, part 1 & 2 • https://www.youtube.com/watch?v=C3XYV6Kxwh0 • https://www.youtube.com/watch?v=EXCS836yKmE&t=193s 参考資料 Copyright © 2023, Oracle and/or its affiliates 37
  27. Zero Downtime Migrationによる データベース移⾏ Oracle Database Technology Night #65-2 ⼭⽥恭平

    ⽇本オラクル株式会社 クラウド・エンジニアリング統括 COE本部 データベース・ソリューション部 2023年 3⽉
  28. システムのダウンタイム極⼩化を実現するOracle Cloud へのデータベース移⾏ツール サービス概要/特徴 • Zero Downtime Migrationは、 データベースをOracle Cloudやオンプレミス

    Exadataにスムーズに移⾏可能なツールです • 従来から存在するOracle Databaseの機能や GoldenGateをツールが⾃動的に構成し、コマンド ⼀つでダウンタイムの少ない移⾏が実現できます こんな課題に役⽴ちます • 既存データベースをOracle Cloud 環境に移⾏したい • サービス停⽌時間をできるだけ短くして環境の切り替え を完了したい • IT部⾨にクラウド移⾏のノウハウが少なくてもスムーズな データベース移⾏を実現したい 価格 • 無償(*) Zero Downtime Migration • GoldenGate利用の場合、利用開始から183日間は無償利用可能 184日(6ヶ月)以上経過した場合、それ以降ライセンスが必要になる • ComputeやObject Storage などのOCI環境は別途課金対象となります (*) * 2023年3月現在 Copyright © 2023, Oracle and/or its affiliates 41
  29. 移行パターンの整理 物理移⾏ 論理移⾏ オフライン オンライン オフライン オンライン RMAN Backup &

    Restore Data Guard RMAN Backup & Restore Data Pump Data Pump GoldenGate + + Enterprise Editionでのみ利⽤可能 Copyright © 2023, Oracle and/or its affiliates 42
  30. • 移⾏元として指定可能なソースデータベースのプラットフォームは下記の通り • 対象プラットフォームごとにサポートされる移⾏パターンが異なる (*1)Oracle Cloud Infrastructure 共同管理データベース • Base

    Database Service (BaseDB) • Exadata Database Service on Dedicated Infrastructure (ExaDB-D) • Exadata Database Service on Cloud@Customer (ExaDB-C@C) (*2)non-CDB環境のみ サポートされるソースデータベースのプラットフォーム オンプレミス OCI 共同管理 データベース(*1) Linux-x86-64 RDS for Oracle IBM AIX Oracle Solaris 物理オフライン 物理オンライン 論理オフライン 論理オンライン (*2) Copyright © 2023, Oracle and/or its affiliates 43
  31. Exadata On-Premises BaseDB ExaDB-D ExaDB-C@C ADB-S ADB-D 物理オフライン 物理オンライン 論理オフライン

    論理オンライン • 移⾏先として指定可能なデータベースは下記の通り • 対象データベースごとにサポートされる移⾏⽅式が異なる サポートされるターゲットデータベース Copyright © 2023, Oracle and/or its affiliates 44
  32. • サポートされるデータベースのバージョン • Oracle データベース 11g リリース 2 (11.2.0.4) •

    Oracle データベース 12c リリース 1 (12.1.0.2) • Oracle データベース 12c リリース 2 (12.2.0.1) • Oracle データベース 18c • Oracle データベース 19c • Oracle データベース 21c • 以降のすべてのOracle Databaseリリース ※物理移⾏の場合ソース、ターゲットは同⼀のバージョン、同⼀のエディションであること(ドキュメント) サポートされるデータベースのバージョン Copyright © 2023, Oracle and/or its affiliates 45
  33. 物理オンライン移⾏の場合 構成要素 Customer Data Center Source Database User App ZDM

    Oracle Cloud Infrastructure VPN FastConnect Dynamic Routing Gateway Service Gateway VCN Target Database ※ ZDMサービスホストは OCI Compute上にも配置可能 SSH SSH RMAN Restore RMAN Backup https Object Storage (Backups) Data Guard Copyright © 2023, Oracle and/or its affiliates 46
  34. 論理オンライン移⾏の場合 構成要素 Customer Data Center Source Database User App ZDM

    Oracle Cloud Infrastructure VPN FastConnect Dynamic Routing Gateway Service Gateway VCN Extract Replicat Oracle GoldenGate – Database Migrations Target Database ※ ZDMサービスホストは OCI Compute上にも配置可能 SSH SSH https SQL*Net Data Pump Import Data Pump Export https Object Storage (Dump Files) SQL*Net Copyright © 2023, Oracle and/or its affiliates 47
  35. 論理オンライン移⾏の場合 環境構築の流れ Copyright © 2023, Oracle and/or its affiliates 49

    ZDMサービスホストの構築 Oracle GoldenGate – Database Migrationsの構築 ターゲットデータベースの構築 ソース/ターゲットデータベースの設定 レスポンス・ファイルの作成
  36. インストールの流れと前提条件 • インストールの流れ • ZDMをインストールするサーバを⽤意(OCI Computeでも可) • www.oracle.com/goto/zdmへアクセスし最新の ZDMインストール媒体をダウンロード •

    インストールに必要なグループ、ユーザ、ディレクトリを作成 • zdminstall.shを実⾏して、ZDMをインストール • 前提条件 • OSはOracle Linux 7であること • ソース、ターゲットに接続可能であること • 100GB以上の空き領域があること • 他のソフトウェアと共存できるが、RHPサーバが構成されているサーバの場合ポートが競合するため インストール後にZDMのポートを変更可能 • ツールにライセンス料等はなく無償利⽤可能(ComputeやBlock StorageなどのOCI環境は別途課⾦対象) • その他詳細はドキュメントを参照 ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 50
  37. • 論理オンライン移⾏の場合OCIマーケットプレイス上にある ”Oracle GoldenGate – Database Migrations”を ZDMとは別に作成する必要がある • レスポンス・ファイル内にこのインスタンスの情報を

    記載することでZDMがGoldenGateにアクセスし ExtractやReplicatなどデータ連携に必要なプロセスを ⾃動作成する • ExaDB-C@Cへの移⾏の場合、Oracle GoldenGate – Database Migrations作成後に インスタンスの中に格納されているDockerイメージをダウンロードし、オンプレミス上で展開可能 これによりお客様データセンター内で完結する移⾏が可能 • GoldenGate利⽤の場合、利⽤開始から183⽇間は 無償利⽤可能184⽇(6ヶ⽉)以上経過した場合、 それ以降ライセンスが必要になる(ComputeやBlock StorageなどのOCI環境は別途課⾦対象) Oracle GoldenGate – Database Migrations Copyright © 2023, Oracle and/or its affiliates 51
  38. 記載例 レスポンス・ファイル Copyright © 2023, Oracle and/or its affiliates 53

    MIGRATION_METHOD=ONLINE_LOGICAL DATA_TRANSFER_MEDIUM=OSS #Source DB SOURCEDATABASE_ADMINUSERNAME=SYSTEM SOURCEDATABASE_CONNECTIONDETAILS_HOST=srcnode SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME=oradb SOURCEDATABASE_CONNECTIONDETAILS_PORT=1521 # Target DB TARGETDATABASE_ADMINUSERNAME=SYSTEM TARGETDATABASE_CONNECTIONDETAILS_HOST=tgtnode TARGETDATABASE_CONNECTIONDETAILS_PORT=1521 TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME=pdb1.sub10281111 111.zdmvcn.oraclevcn.com # GoldenGate GOLDENGATEHUB_ADMINUSERNAME=oggadmin GOLDENGATEHUB_URL=https://10.0.1.239/ GOLDENGATEHUB_SOURCEDEPLOYMENTNAME=MarketplaceGGHub GOLDENGATEHUB_TARGETDEPLOYMENTNAME=MarketplaceGGHub GOLDENGATEHUB_COMPUTEID=ocid1.instance.oc1.ap-tokyo- 1.anxhiljrssl65iqc6xgpsosf5ymcsje6mk4ddtkzgk5rfvx237czzzzdij5 b SOURCEDATABASE_GGADMINUSERNAME=GGADMIN TARGETDATABASE_GGADMINUSERNAME=GGADMIN # Datapump DATAPUMPSETTINGS_JOBMODE=SCHEMA INCLUDEOBJECTS-1=owner:scott DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE=8 DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE=8 DATAPUMPSETTINGS_DATABUCKET_NAMESPACENAME=zdmtenant DATAPUMPSETTINGS_DATABUCKET_BUCKETNAME=zdmbucket DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME=DATA_PUMP_DIR DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH=/u01/app/oracle/a dmin/oradb/dpdump DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME=PUMP_DIR DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATH=/mnt/FileSystem/p ump_dir # OCICLI OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID=ocid1.user.oc1. .aaaaaaaac64752xd64ushyxauaacjf42bbbbjzlxng4aaaaaajgeh6aaaaaa OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID=ocid1.tenancy .oc1..aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4aaaaaaaaambuazc5t kguca OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT=36:f9:a3:a 5:d7:25:09:1d:yr:0f:62:65:0c:ea:5r:1a OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_PRIVATEKEYFILE=/home/z dmuser/.oci/oci_api_key.pem OCIAUTHENTICATIONDETAILS_REGIONID=ap-tokyo-1 # Other TABLESPACEDETAILS_REMAPTARGET=ZDMTESTPDB RUNCPATREMOTELY=TRUE
  39. • 移⾏前にZDMの評価コマンドを実⾏する • 移⾏コマンドであるzdmcliのmigrate databaseコマンドに –eval のオプションを付与することで移⾏前の評価を実施可能 • 移⾏コマンド実⾏時にも評価は実施されるがオプションを付与することで評価フェーズのみ実⾏可能となる •

    コマンドの中で作成したレスポンス・ファイルの情報を指定して実⾏ • 実⾏するとジョブIDが発⾏される 評価コマンドの実⾏ Copyright © 2023, Oracle and/or its affiliates 56 $ZDM_HOME/bin/zdmcli migrate database -sourcedb srcdb -sourcenode srcnode -srcroot - targetnode tgtnode -rsp /home/zdmuser/logical_online.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk -tgtarg3 sudo_location:/usr/bin/sudo -eval Operation "zdmcli migrate database" scheduled with the job ID "44".
  40. • migrate databaseコマンドでジョブを発⾏後、発⾏したジョブを確認するために query jobコマンドを実⾏することで各フェーズごとの状況を確認可能 • エラーがあった場合“FAILED”と表⽰され、エラーの詳細はログファイルに記載されている 評価コマンドの確認 $ZDM_HOME/bin/zdmcli query

    job -jobid 6 host-10-5-1-150.sub10280400000.vcnkix.oraclevcn.com: Audit ID: 418 Job ID: 6 User: zdmuser Client: host-10-5-1-150 Job Type: "EVAL" Scheduled job command: "$ZDM_HOME/bin/zdmcli migrate database -sourcedb srcdb -sourcenode srcnode -srcroot -targetnode tgtnode -rsp /home/zdmuser/logical_online.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk -tgtarg3 sudo_location:/usr/bin/sudo -eval" Scheduled job execution start time: 2023-03-02T07:32:53Z. Equivalent local time: 2023-03-02 07:32:53 Current status: SUCCEEDED Result file path: "/home/zdmuser/zdmbase/chkbase/scheduled/job-6-2023-03-02-07:33:07.log" Excluded objects file path: "/home/zdmuser/zdmbase/chkbase/scheduled/job-6-filtered-objects-2023-03-02T07:33:22.418.json" Job execution start time: 2023-03-02 07:33:08 Job execution end time: 2023-03-02 07:33:43 Job execution elapsed time: 35 seconds ZDM_VALIDATE_TGT ...................... COMPLETED ZDM_VALIDATE_SRC ...................... COMPLETED ZDM_SETUP_SRC ......................... COMPLETED ZDM_PRE_MIGRATION_ADVISOR ............. COMPLETED ZDM_VALIDATE_GG_HUB ................... COMPLETED ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... COMPLETED ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... COMPLETED ZDM_PREPARE_DATAPUMP_SRC .............. COMPLETED ZDM_CLEANUP_SRC ....................... COMPLETED Copyright © 2023, Oracle and/or its affiliates 57
  41. 実際のエラー例 ログの確認 Copyright © 2023, Oracle and/or its affiliates 58

    [zdmuser@host-10-5-1-150 ~]$ cat /home/zdmuser/zdmbase/chkbase/scheduled/job-1-2023-03-02-05:24:37.log host-10-5-1-150: 2023-03-02T05:24:37.923Z : Starting zero downtime migrate operation ... host-10-5-1-150: 2023-03-02T05:24:37.954Z : Executing phase ZDM_VALIDATE_TGT host-10-5-1-150: 2023-03-02T05:24:51.654Z : Fetching details of Oracle Database Appliance "target19_pdb1.sub10280358451.peeringvcn.oraclevcn.com" host-10-5-1-150: 2023-03-02T05:24:51.656Z : Type of database : "On Premises Oracle Database Appliance" host-10-5-1-150: 2023-03-02T05:24:51.756Z : Verifying configuration and status of target database "target19_pdb1.sub10280358451.peeringvcn.oraclevcn.com" host-10-5-1-150: 2023-03-02T05:24:56.556Z : Global database name: TARGET19_PDB1.SUB10280358451.PEERINGVCN.ORACLEVCN.COM host-10-5-1-150: 2023-03-02T05:24:56.557Z : Target PDB name : TARGET19_PDB1 host-10-5-1-150: 2023-03-02T05:24:56.558Z : Database major version : 19 host-10-5-1-150: 2023-03-02T05:24:56.559Z : obtaining database TARGET19_PDB1.SUB10280358451.PEERINGVCN.ORACLEVCN.COM tablespace configuration details... host-10-5-1-150: 2023-03-02T05:25:00.276Z : Database parameter ENABLE_GOLDENGATE_REPLICATION is set to true. host-10-5-1-150: 2023-03-02T05:25:00.277Z : Oracle GoldenGate database administrator user "GGADMIN" has required privileges. host-10-5-1-150: 2023-03-02T05:25:00.277Z : Execution of phase ZDM_VALIDATE_TGT completed host-10-5-1-150: 2023-03-02T05:25:00.356Z : Executing phase ZDM_VALIDATE_SRC host-10-5-1-150: 2023-03-02T05:25:00.457Z : Verifying configuration and status of source database "oradb" host-10-5-1-150: 2023-03-02T05:25:00.459Z : source database host source service oradb host-10-5-1-150: 2023-03-02T05:25:02.920Z : Global database name: ORADB host-10-5-1-150: 2023-03-02T05:25:02.922Z : Database major version : 12 host-10-5-1-150: 2023-03-02T05:25:02.923Z : Validating database time zone compatibility... PRGZ-1144 : Database "ORADB" is not in ARCHIVELOG mode.
  42. • ZDMにはCPATが組み込まれており、評価コマンド、移⾏コマンド実⾏時には CPATによるデータベースの評価が⾏われている(ZDM_PRE_MIGRATION_ADVISORフェーズで実⾏) • CPATはJavaベースで実装されたOracle Database 11.2.0.4以上で動作するツールであり、 GoldenGateでサポートされないデータタイプが使⽤されていないかなど、データベースに簡単なクエリを発⾏し 結果をレポートファイルとして出⼒するツールとなっている •

    ツールの詳細は下記ドキュメントに記載 Cloud Premigration Advisor Tool (CPAT) Analyzes Databases for Suitability of Cloud Migration (Doc ID 2758371.1) • サポートされないデータ型等が⾒つかった場合も評価コマンド⾃体はステータス︓SUCCEEDED で表⽰され、そのまま移⾏コマンドも発⾏できてしまう • 評価コマンド発⾏後は必ずCPATレポートを確認すること Cloud Premigration Advisor Tool (CPAT)について Copyright © 2023, Oracle and/or its affiliates 59
  43. • CPATレポートの結果サマリと格納場所は実⾏コマンドのログファイル内に記載されている • ログにはPassedやAction Requiredなどのサマリ結果が記載されている CPATレポートの格納場所 host-10-5-1-150: 2023-03-02T07:33:27.685Z : Premigration

    advisor output: Cloud Premigration Advisor Tool Version 22.5.2 Cloud Premigration Advisor Tool completed with overall result: Action Required Cloud Premigration Advisor Tool generated report location: /home/zdmuser/zdmbase/crsdata/host-10-5-1- 150/rhp/temp/zdm/zdm_oradb_6/out/premigration_advisor_report.json Cloud Premigration Advisor Tool generated report location: /home/zdmuser/zdmbase/crsdata/host-10-5-1- 150/rhp/temp/zdm/zdm_oradb_6/out/premigration_advisor_report.txt CPAT exit code: 3 RESULT: Action Required Copyright © 2023, Oracle and/or its affiliates 60
  44. エラーの例 • ソースデータベースとターゲットデータベースでnls_character_setが異なる場合の記載 CPATレポートの確認 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Check Name: nls_character_set_conversion Check Result:

    Action Required ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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. Failure Impact: During migration you will encounter ORA-1401 or loss of invalid character codes due to character set conversion from the source to the target database character set. Status Message: The source database character set is WE8MSWIN1252 and the target cloud database character set is AL32UTF8. In order to check for those issues, perform the database scan of the source database using Database Migration Assistant for Unicode (DMU). Action: Scan the schemas to be migrated using Database Migration Assistant for Unicode (DMU) and analyze all possible convertibility issues. Copyright © 2023, Oracle and/or its affiliates 61
  45. • ZDMの移⾏コマンドを実⾏する • zdmcliのmigrate databaseコマンドで実⾏ 評価コマンドで実⾏したコマンドの-evalを削除する • -pauseafterパラメータを指定することでジョブの⼀時停⽌が可能 下記コマンド例ではZDM_MONITOR_GG_LAGフェーズでジョブを⼀時停⽌している 移⾏コマンドの実⾏

    $ZDM_HOME/bin/zdmcli migrate database -sourcedb srcdb -sourcenode srcnode -srcroot - targetnode tgtnode -rsp /home/zdmuser/logical_online.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm.ppk -tgtarg3 sudo_location:/usr/bin/sudo -pauseafter ZDM_MONITOR_GG_LAG Copyright © 2023, Oracle and/or its affiliates 62
  46. ZDM論理オンライン移⾏によって⾃動実⾏されるフェーズ(1/3) • ZDM_VALIDATE_TGT • ZDM_VALIDATE_SRC • ZDM_SETUP_SRC • ZDM_PRE_MIGRATION_ADVISOR •

    ZDM_VALIDATE_GG_HUB • ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC • ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT • ZDM_PREPARE_DATAPUMP_SRC • ZDM_DATAPUMP_ESTIMATE_SRC • ZDM_PREPARE_GG_HUB • ZDM_ADD_HEARTBEAT_SRC • ZDM_ADD_SCHEMA_TRANDATA_SRC • ZDM_CREATE_GG_EXTRACT_SRC • ZDM_PREPARE_DATAPUMP_TGT 移⾏コマンドのフェーズ Copyright © 2023, Oracle and/or its affiliates 63 • -evalにて実行される内容と同じフェーズ • 各リソースの評価を実施 • 移行前の事前作業フェーズ • Data Pump関連の事前作業、 GoldenGateのExtractプロセス生成、ハートビート 表の作成などを実施
  47. ZDMによって⾃動実⾏されるフェーズ(2/3) • ZDM_DATAPUMP_EXPORT_SRC • ZDM_UPLOAD_DUMPS_SRC • ZDM_DATAPUMP_IMPORT_TGT • ZDM_POST_DATAPUMP_SRC •

    ZDM_POST_DATAPUMP_TGT • ZDM_ADD_HEARTBEAT_TGT • ZDM_ADD_CHECKPOINT_TGT • ZDM_CREATE_GG_REPLICAT_TGT • ZDM_MONITOR_GG_LAG • ZDM_SWITCHOVER_APP 移⾏コマンドのフェーズ Copyright © 2023, Oracle and/or its affiliates 64 • Data Pumpによる初期移行フェーズ • エクスポート、ダンプ・ファイルの移動、 インポートなどを実施 • GoldenGateによるデータ連携フェーズ • Replicatプロセスやチェックポイント表などを 生成し、初期移行データからの差分同期を実施 • Replicatによるデータ同期の完了をZDMが判断し Extract、Replicatプロセスを停止する
  48. ZDMによって⾃動実⾏されるフェーズ(3/3) • ZDM_RM_GG_EXTRACT_SRC • ZDM_RM_GG_REPLICAT_TGT • ZDM_DELETE_SCHEMA_TRANDATA_SRC • ZDM_RM_HEARTBEAT_SRC •

    ZDM_RM_CHECKPOINT_TGT • ZDM_RM_HEARTBEAT_TGT • ZDM_CLEAN_GG_HUB • ZDM_POST_ACTIONS • ZDM_CLEANUP_SRC 移⾏コマンドのフェーズ Copyright © 2023, Oracle and/or its affiliates 65 • 最終処理フェーズ • ZDMが自動生成したGoldenGateプロセスや オブジェクトの削除を実施
  49. ZDMによるデータ同期の確認 • ZDMはソース・データベースの更新が⼀定期間停⽌し、ラグが閾値以下になった場合Extractプロセスを停⽌する (GOLDENGATESETTINGS_ACCEPTABLELAGパラメータで閾値を設定) • Replicatプロセスがデータを適⽤するまで待機し、完了後にReplicatプロセスを停⽌する • 上記のような流れでデータが最新まで追いついていると判断している • データの整合性チェックは⾏っていない

    ⼿動でのデータ同期の確認 • 例えば移⾏当⽇にデータの追いつき具合を⼿動で確認したい場合には -pauseafterパラメータでZDM_MONITOR_GG_LAGを指定する • ZDM_MONITOR_GG_LAGフェーズまで実⾏されたタイミングでZDMのジョブは⼀時停⽌するものの、 GoldenGateによるデータ連携は継続して実⾏される • この間にソース、ターゲットデータベースにアクセスしてデータを確認する • ソースとターゲットのデータ差異がゼロ、もしくは極⼩化したタイミングでアプリケーションを停⽌し、 ZDMのジョブを再実⾏する(zdmcli resume job -jobid XX) データ同期の確認 Copyright © 2023, Oracle and/or its affiliates 66
  50. • query jobコマンドを実⾏しZDMジョブの実⾏状況を確認 • 全てのフェーズがCOMPLETEDになったことを確認し移⾏完了となる 移⾏コマンドの確認 Copyright © 2023, Oracle

    and/or its affiliates 67 $ZDM_HOME/bin/zdmcli query job -jobid 7 host-10-5-1-150.sub10280400000.vcnkix.oraclevcn.com: Audit ID: 419 Job ID: 7 User: zdmuser ~~~~~中略~~~~~~~~ ZDM_MONITOR_GG_LAG .................... COMPLETED ZDM_SWITCHOVER_APP .................... COMPLETED ZDM_RM_GG_EXTRACT_SRC ................. COMPLETED ZDM_RM_GG_REPLICAT_TGT ................ COMPLETED ZDM_DELETE_SCHEMA_TRANDATA_SRC ........ COMPLETED ZDM_RM_HEARTBEAT_SRC .................. COMPLETED ZDM_RM_CHECKPOINT_TGT ................. COMPLETED ZDM_RM_HEARTBEAT_TGT .................. COMPLETED ZDM_CLEAN_GG_HUB ...................... COMPLETED ZDM_POST_ACTIONS ...................... COMPLETED ZDM_CLEANUP_SRC ....................... COMPLETED
  51. • ZDM固有の注意事項 • IaaS上のデータベースへの移⾏はサポート対象外 • GoldenGateによる逆同期は不可 • GoldenGate利⽤に関する基本的な注意事項 • サポート対象のオブジェクトは要確認

    • 必須・推奨パッチアリ • サプリメンタルロギング設定による負荷 • 抽出/適⽤パフォーマンスを確認(想定する移⾏時間内にターゲットDBがソースDBに追いつけるか) 利⽤上の注意事項 Copyright © 2023, Oracle and/or its affiliates 68
  52. Zero Downtime Migrationによるデータベース移⾏ まとめ Copyright © 2023, Oracle and/or its

    affiliates 69 Zero Downtime Migrationを使ってダウンタイムを極小化した移行が可能 移行前に評価コマンドを実行し、ZDMの実効性評価を実施 評価コマンドだけでなくCPATのレポートを確認 移行コマンドは一時停止/再実行を活用してデータ同期を確認
  53. • マニュアル https://docs.oracle.com/en/database/oracle/zero-downtime-migration/ • オンプレミスからOracle DBCS/ExaCSへの論理的移⾏と 並⾏アップグレードに関するステップ・バイ・ステップ・ガイド https://www.oracle.com/jp/a/tech/docs/oracle-zdm-logical-migration-step-by-step-guide-ja.pdf • Oracle

    ZDMを使⽤した物理的移⾏のステップ・バイ・ステップ・ガイド https://www.oracle.com/jp/a/tech/docs/oracle-zdm-step-by-step-guide-ja.pdf • LiveLabs • Zero Downtime Migration: Logical Online Migration to Oracle Autonomous Database https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=937 • Zero Downtime Migration - Logical Offline Migration to ADB https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=850 • Zero Downtime Migration : Physical Offline Migration to Co-Managed Databases in OCI https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3568 参考資料 Copyright © 2023, Oracle and/or its affiliates 71
  54. • Speaker Deck • GoldenGate Docker Imageを使⽤したZDMによる On-Premises ExadataからExaDB-C@Cへの論理オンライン移⾏ https://speakerdeck.com/oracle4engineer/goldengate-docker-imagewoshi-yong-

    sitazdmniyoruon-premises-exadatakaraexadb-c-at-chenolun-li-onrainyi-xing • Oracle Database Technology Night #44 Zero Downtime Migration 21c https://speakerdeck.com/oracle4engineer/oracledatabasetechnologynight44zdm • YouTube • https://www.youtube.com/playlist?list=PLdtXkK5KBY56_sMVg5zUzDJ7DX-95rynG • お客様事例 • Cognizant様 https://www.oracle.com/customers/cognizant/ • Logicalis様 https://blogs.oracle.com/maa/post/logicalis-customer-uses-zdm-to-migrate-databases-to- oracle-cloud 参考資料 Copyright © 2023, Oracle and/or its affiliates 72