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
PRO

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⽉

    View Slide

  2. 1. Oracle Database移行方式の全体像
    2. Data Pumpを使用したデータベース移行のベスト・プラクティス
    3. Zero Downtime Migrationによるデータベース移行
    Agenda
    Copyright © 2023, Oracle and/or its affiliates
    2

    View Slide

  3. Oracle Database
    移⾏⽅式の全体像
    Copyright © 2023, Oracle and/or its affiliates
    3

    View Slide

  4. 主な移行方式一覧
    移行ツール 移行対象
    最低移行元バー
    ジョン(サポート中
    の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

    View Slide

  5. 本⽇紹介する機能/ツール
    Copyright © 2023, Oracle and/or its affiliates
    5
    • Data Pump
    • Zero Downtime Migration
    下記の機能について概要とTipsを紹介

    View Slide

  6. Data Pumpを使⽤したデータベース移⾏のベスト・プラクティス
    Oracle Database Technology Night #65-2
    2023/03/23
    ⽇本オラクル株式会社
    COE本部 データベース・ソリューション部
    宮本 拓弥

    View Slide

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

    View Slide

  8. Data Pumpの概要
    Copyright © 2023, Oracle and/or its affiliates
    8

    View Slide

  9. 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
    ダンプ・ファイル

    View Slide

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

    View Slide

  11. アーキテクチャ
    Data Pumpの概要
    Copyright © 2023, Oracle and/or its affiliates
    11
    実⾏ユーザ
    制御プロセス
    制御表
    キュー
    ワーカー・プロセス
    ダンプ・ファイル
    expdp/
    impdp

    View Slide

  12. 必要および推奨の設定項⽬
    Copyright © 2023, Oracle and/or its affiliates
    12

    View Slide

  13. ⼀覧
    ü 移⾏スキーマの準備
    ü 出⼒先ディレクトリの準備
    ü 初期化パラメータSTREAMS_POOL_SIZEの設定
    ü ディクショナリ統計の収集
    ü パラメータ・ファイルの使⽤
    必要および推奨の設定項⽬
    Copyright © 2023, Oracle and/or its affiliates
    13

    View Slide

  14. 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は使⽤しない

    View Slide

  15. 出⼒先ディレクトリの準備
    必要および推奨の設定項⽬
    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権限を付与する
    確認コマンド

    View Slide

  16. 初期化パラメータ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の範囲に指定することを推奨

    View Slide

  17. ディクショナリ統計の収集
    ディクショナリ統計を収集し、最新の統計情報を維持する
    • エクスポートの実⾏前
    • インポートの実⾏後
    必要および推奨の設定項⽬
    Copyright © 2023, Oracle and/or its affiliates
    17
    SQL> begin
    dbms_stats.gather_schema_stats('SYS');
    dbms_stats.gather_schema_stats('SYSTEM');
    end;

    View Slide

  18. パラメータ・ファイルの使⽤
    必要および推奨の設定項⽬
    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
    パラメータ・ファイルを使⽤した実⾏ – 推奨

    View Slide

  19. Data Pumpのパラメータの指定
    Copyright © 2023, Oracle and/or its affiliates
    19

    View Slide

  20. ⼀覧
    ü 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

    View Slide

  21. 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
    実⾏したい移⾏モードに該当するパラメータを指定する

    View Slide

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

    View Slide

  23. 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
    指定なしの場合:
    指定ありの場合:

    View Slide

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

    View Slide

  25. PARALLELパラメータとプロセスの関係
    PARALLEL=1(デフォルト)を指定した場合
    • プロセスが2つ – 制御プロセスが1つ、ワーカー・プロセスが1つ
    Data Pumpのパラメータの指定
    Copyright © 2023, Oracle and/or its affiliates
    25
    実⾏ユーザ
    制御プロセス
    キュー
    ワーカー・プロセス
    ダンプ・ファイル
    expdp

    View Slide

  26. PARALLELパラメータとプロセスの関係
    PARALLEL=4を指定した場合
    • 稼働しているワーカー・プロセスは1つ
    • 残りのワーカー・プロセスはアイドル状態
    Data Pumpのパラメータの指定
    Copyright © 2023, Oracle and/or its affiliates
    26
    実⾏ユーザ
    制御プロセス
    キュー
    ワーカー・プロセス
    ダンプ・ファイル
    expdp
    ZZ Z Z
    ZZ Z Z
    ZZ Z Z

    View Slide

  27. 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
    作成されるダンプ・ファイルの数とそれぞれのサイズを調整できる

    View Slide

  28. PARALLELパラメータとプロセスの関係
    PARALLEL=4を指定した場合
    DUMPFILEパラメータでワイルド・カード %L を指定する
    • ワーカー・プロセスは1つのダンプ・ファイルをロックして書き込みを⾏う
    Data Pumpのパラメータの指定
    Copyright © 2023, Oracle and/or its affiliates
    28
    実⾏ユーザ
    制御プロセス
    キュー
    ワーカー・プロセス
    DUMPFILE=myexp%L.dmp
    expdp
    ダンプ・ファイル

    View Slide

  29. Data PumpのWorkerプロセスがアイドル状態になる原因
    以下が可能性として考えられる
    1. 単⼀のダンプ・ファイルのみ指定している場合
    2. Data Pumpがパラレル問い合わせを使⽤している場合
    3. 移⾏データにBasicFiles LOBが含まれている場合
    4. NETWORK_LINKを指定している場合
    Data Pumpのパラメータの指定
    Copyright © 2023, Oracle and/or its affiliates
    29

    View Slide

  30. 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

    View Slide

  31. 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 ネットワーク速度が限定要因となっている、速度が遅いネットワークでダンプ・ファイルがコピーされる状況
    に最適です。

    View Slide

  32. 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の設定値を考慮する必要がある

    View Slide

  33. 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以上に設定する必要がある

    View Slide

  34. 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およびラージ・オブジェクト開発者ガイド

    View Slide

  35. 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 統計情報を元に⾒積もる

    View Slide

  36. パラメータファイルの記載例
    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)

    View Slide

  37. • マニュアル
    • 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

    View Slide

  38. Zero Downtime Migrationによる
    データベース移⾏
    Oracle Database Technology Night #65-2
    ⼭⽥恭平
    ⽇本オラクル株式会社
    クラウド・エンジニアリング統括 COE本部
    データベース・ソリューション部
    2023年 3⽉

    View Slide

  39. 1. Zero Downtime Migrationとは
    2. 論理オンライン移行における環境構築
    3. 論理オンライン移行によるダウンタイムを極小化した移行
    4. Appendix
    Agenda
    Copyright © 2023, Oracle and/or its affiliates
    39

    View Slide

  40. Zero Downtime
    Migrationとは
    Copyright © 2023, Oracle and/or its affiliates
    40

    View Slide

  41. システムのダウンタイム極⼩化を実現する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

    View Slide

  42. 移行パターンの整理
    物理移⾏ 論理移⾏
    オフライン オンライン オフライン オンライン
    RMAN Backup & Restore
    Data Guard
    RMAN Backup & Restore
    Data Pump
    Data Pump
    GoldenGate
    + +
    Enterprise Editionでのみ利⽤可能
    Copyright © 2023, Oracle and/or its affiliates
    42

    View Slide

  43. • 移⾏元として指定可能なソースデータベースのプラットフォームは下記の通り
    • 対象プラットフォームごとにサポートされる移⾏パターンが異なる
    (*1)Oracle Cloud Infrastructure 共同管理データベース
    • Base Database Service (BaseDB)
    • Exadata Database Service on Dedicated Infrastructure (ExaDB-D)
    • Exadata Database Service on [email protected] ([email protected])
    (*2)non-CDB環境のみ
    サポートされるソースデータベースのプラットフォーム
    オンプレミス
    OCI 共同管理
    データベース(*1)
    Linux-x86-64 RDS for Oracle IBM AIX Oracle Solaris
    物理オフライン
    物理オンライン
    論理オフライン
    論理オンライン (*2)
    Copyright © 2023, Oracle and/or its affiliates
    43

    View Slide

  44. Exadata
    On-Premises
    BaseDB ExaDB-D ExaDB-C@C ADB-S ADB-D
    物理オフライン
    物理オンライン
    論理オフライン
    論理オンライン
    • 移⾏先として指定可能なデータベースは下記の通り
    • 対象データベースごとにサポートされる移⾏⽅式が異なる
    サポートされるターゲットデータベース
    Copyright © 2023, Oracle and/or its affiliates
    44

    View Slide

  45. • サポートされるデータベースのバージョン
    • 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

    View Slide

  46. 物理オンライン移⾏の場合
    構成要素
    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

    View Slide

  47. 論理オンライン移⾏の場合
    構成要素
    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

    View Slide

  48. 論理オンライン移⾏に
    おける環境構築
    Copyright © 2023, Oracle and/or its affiliates
    48

    View Slide

  49. 論理オンライン移⾏の場合
    環境構築の流れ
    Copyright © 2023, Oracle and/or its affiliates
    49
    ZDMサービスホストの構築
    Oracle GoldenGate – Database Migrationsの構築
    ターゲットデータベースの構築
    ソース/ターゲットデータベースの設定
    レスポンス・ファイルの作成

    View Slide

  50. インストールの流れと前提条件
    • インストールの流れ
    • 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

    View Slide

  51. • 論理オンライン移⾏の場合OCIマーケットプレイス上にある
    ”Oracle GoldenGate – Database Migrations”を
    ZDMとは別に作成する必要がある
    • レスポンス・ファイル内にこのインスタンスの情報を
    記載することでZDMがGoldenGateにアクセスし
    ExtractやReplicatなどデータ連携に必要なプロセスを
    ⾃動作成する
    [email protected]への移⾏の場合、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

    View Slide

  52. • ZDM実⾏に必要なソースDB、ターゲットDB、GoldenGateなどのインスタンス情報を記載する設定ファイル
    • 移⾏コマンド実⾏時にコマンドライン内のパラメータでファイルを指定する
    • ZDMバイナリ上にサンプルが格納されている
    $ZDM_HOME/rhp/zdm/template/zdm_logical_template.rsp)
    • レスポンス・ファイルの各パラメータについての詳細はドキュメント参照
    レスポンス・ファイルの作成
    Copyright © 2023, Oracle and/or its affiliates
    52

    View Slide

  53. 記載例
    レスポンス・ファイル
    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

    View Slide

  54. 論理オンライン移⾏に
    よるダウンタイムを
    極⼩化した移⾏
    Copyright © 2023, Oracle and/or its affiliates
    54

    View Slide

  55. 論理オンライン移⾏の場合
    移⾏時の流れ
    評価コマンドの実⾏
    CPATログの確認
    移⾏コマンドの実⾏
    データ同期の確認
    アプリケーションの切り替え
    Copyright © 2023, Oracle and/or its affiliates
    55

    View Slide

  56. • 移⾏前に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".

    View Slide

  57. • 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

    View Slide

  58. 実際のエラー例
    ログの確認
    Copyright © 2023, Oracle and/or its affiliates
    58
    [[email protected] ~]$ 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.

    View Slide

  59. • 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

    View Slide

  60. • 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

    View Slide

  61. エラーの例
    • ソースデータベースとターゲットデータベースで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

    View Slide

  62. • 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

    View Slide

  63. 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プロセス生成、ハートビート
    表の作成などを実施

    View Slide

  64. 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プロセスを停止する

    View Slide

  65. 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プロセスや
    オブジェクトの削除を実施

    View Slide

  66. 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

    View Slide

  67. • 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

    View Slide

  68. • ZDM固有の注意事項
    • IaaS上のデータベースへの移⾏はサポート対象外
    • GoldenGateによる逆同期は不可
    • GoldenGate利⽤に関する基本的な注意事項
    • サポート対象のオブジェクトは要確認
    • 必須・推奨パッチアリ
    • サプリメンタルロギング設定による負荷
    • 抽出/適⽤パフォーマンスを確認(想定する移⾏時間内にターゲットDBがソースDBに追いつけるか)
    利⽤上の注意事項
    Copyright © 2023, Oracle and/or its affiliates
    68

    View Slide

  69. Zero Downtime Migrationによるデータベース移⾏
    まとめ
    Copyright © 2023, Oracle and/or its affiliates
    69
    Zero Downtime Migrationを使ってダウンタイムを極小化した移行が可能
    移行前に評価コマンドを実行し、ZDMの実効性評価を実施
    評価コマンドだけでなくCPATのレポートを確認
    移行コマンドは一時停止/再実行を活用してデータ同期を確認

    View Slide

  70. Appendix
    Copyright © 2023, Oracle and/or its affiliates
    70

    View Slide

  71. • マニュアル
    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

    View Slide

  72. • Speaker Deck
    • GoldenGate Docker Imageを使⽤したZDMによる
    On-Premises Exadataから[email protected]への論理オンライン移⾏
    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

    View Slide

  73. View Slide