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

Oracle Database Technology Night #69 Oracle Databaseクラウド移行ツールさわってみた

Oracle Database Technology Night #69 Oracle Databaseクラウド移行ツールさわってみた

2023年7月31日、Oracle Database Technology Night#69 Oracle Databaseクラウド移行ツールさわってみた で説明した資料です。

[7/27のQ&A補足]
Q. FTEXの場合、shrinkは実行しないのでしょうか?
当日は以下のように回答しましたが、お客様のご質問の意図と異なる回答をしてしまったため、訂正させていただきます。
<訂正前>
今回の検証ではダンプファイルの容量がFTEXの場合圧縮するほどの大きさでないと判断し、パフォーマンスを考慮し、指定をしませんでした。compressionパラメータの指定自体は可能です。
<訂正後>
今回の検証では表領域などのshrinkは実行していません。ケースによっては実行することで転送効率が向上する可能性があります。

oracle4engineer

July 31, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Copyright © 2023, Oracle and/or its affiliates 2 • 検証背景

    • 検証概要 • Data Pumpの検証 • Full Transportable Export/Import(FTEX)の検証 • Zero Downtime Migration(ZDM)の検証 • OCI Database Migration Service(DMS)の検証 • 全体の結果比較 • まとめ Agenda
  2. 主な移行方式一覧 Copyright © 2023, Oracle and/or its affiliates 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への移行 移行元ライセンスによって 選択可能な移行方式が異なる OCI Database Migration Service(DMS) 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
  3. 今回の検証の背景 Copyright © 2023, Oracle and/or its affiliates 5 課題

    • 弊社が提供するデータベースの移行方式が多数存在し、どの方式を選択すればよいか戸惑うお客様が多くみられる • Oracle推奨の移行方式(Zero Downtime Migration、OCI Database Migration Service)は、現時点ではあまり使われていない • 過去に検証を実施した移行方式はあるが、案件対応で個別に対応してるため、検証の前提条件がそろっておらず、方式の比較がしにくい 検証の目的 • 代表的な移行方式をピックアップして比較し、お客様が移行の方式を選択しやすくしたい • 「Oracle推奨の移行方式」がお客様のデータ移行時の方式として検討されやすくなるようにしたい 検証の進め方 • 社内アンケートで移行方式の検証の優先順位付けを実施 • アンケート結果をもとに、移行方式をピックアップし、前提条件をそろえて検証を行い、比較する ⇒前提条件: • どのプラットフォームからどのプラットフォームへの移行か? • どのバージョンからの移行か? • データ量は? など
  4. 移行例の検証 過去の移行検証について Copyright © 2023, Oracle and/or its affiliates 6

    移行方法 Data Pump(TTS) RMAN Duplicate + 基本ス タンバイ RMANバックアップからのTTS RMANバックアップからのTTS クラウドサービス DBCS VM DBCS VM DBCS VM ExaCS マルチテナント 有 → 有 有 → 有 無 → 有 無 → 有 データ量(*) 少 (100GB未満) 少 (100GB未満) 1TB 1TB ネットワーク 転送速度 高速 (同一VCN内通信) 高速 (同一VCN内通信) 低速 インターネット(大阪→東京) 低速 インターネット(大阪→東京) 表領域暗号化 無 → 有 無 → 有 無 → 有 無 → 有 作業時間 約2時間 約2時間 約13時間 約11時間 バージョンアップ 有(12.1→19c) 無 有(12.1→19c) 有(12.1→19c) データ同期作業 無 無 無 無 移行手順 Qiita Qiita 前提条件がそろっておらず方式が比較しにくい
  5. • Data Pumpが3割近く検討、利用されており、2番手がGoldenGateとなった • 弊社の推奨であるZDM、DMSは現状あまり検討されていない 移行方式について • 11.2.0.4が最も多く、それに次いで12.1.0.2となった • この中には過去に移行されたデータベース、将来移行するデータベースも含まれているため、今後の移行対象と絞ると

    ソースDBのバージョンは変化する可能性がある ソースDBのバージョンについて • いずれも、暗号化無し、EE、non-CDBが7割近く占めている ソースDBの暗号化有無、エディション、構成について • 1TB以上のデータベースが半数程度 データ量について アンケート結果まとめ Copyright © 2023, Oracle and/or its affiliates 14
  6. • Data Pumpが3割近く検討、利用されており、2番手がGoldenGateとなった • 弊社の推奨であるZDM、DMSは現状あまり検討されていない 移行方式について • 11.2.0.4が最も多く、それに次いで12.1.0.2となった • この中には過去に移行されたデータベース、将来移行するデータベースも含まれているため、今後の移行対象と絞ると

    ソースDBのバージョンは変化する可能性がある ソースDBのバージョンについて • いずれも、暗号化無し、EE、non-CDBが7割近く占めている ソースDBの暗号化有無、エディション、構成について • 1TB以上のデータベースが半数程度 データ量について アンケート結果まとめ Copyright © 2023, Oracle and/or its affiliates 15 移行方式 ⇒ Data Pump, Full Transportable Export/Import, ZDM, DMS ソースDBのバージョン ⇒ 12.1.0.2 ソースDBの構成 ⇒ 暗号化無し、EE、non-CDB データ量 ⇒ 1TB
  7. Copyright © 2023, Oracle and/or its affiliates 17 【移行方式】 ①

    Data Pump ② Full Transportable Export/Import(FTEX) ③ Zero Downtime Migration(ZDM) ④ OCI Database Migration Service(DMS) 【移行内容】 それぞれの方式において同一の環境、前提条件でOCIの大阪リージョンをソースDBとし、 東京リージョンへの移行時における想定工数やダウンタイムを比較する 検証概要
  8. 構成 環境 バージョン エディション 表領域 データ量 暗号化 ソース OCI Compute

    上のOracle DB (大阪リージョン) 12.1.0.2.220719 (non-CDB) EE USERS 1TB 無し ターゲット OCI BaseDB (東京リージョン) 19.16.0.0 (PDB) EE USERS 1TB 有り 検証環境 Copyright © 2023, Oracle and/or its affiliates 18 • 大阪リージョンにソースDBとして、OCI Compute上にOracle Databaseをインストールし、オンプレミスDBとみなす • 東京リージョンのターゲットDBは、CDB内のPDBを使用する
  9. スペック 検証環境 Copyright © 2023, Oracle and/or its affiliates 19

    シェイプ OCPU数 メモリ ストレージ ソース VM.Standard.E4.Flex 4 64GB Block Volume (Higher Performance) 2048GB ターゲット VM.Standard.E4.Flex 4 64GB Block Volume (Higher Performance) 2048GB
  10. ap-osaka-1 ap-tokyo-1 AD1 検証環境構成図 AD1 VCN(ソース) : peeringVCN_Kix Public (10.5.0.0/24)

    Private (10.5.1.0/24) VCN(ターゲット) : peeringVCN Private (10.0.1.0/24) Internet Internet GW DRG DRG Remote Peering 踏み台サーバ ターゲットDB ソースDBサーバ Copyright © 2023, Oracle and/or its affiliates 20 10.5.1.124 host-10-5-1-124 OCI Tenancy Cust Tenancy Oracle Services Network File Storage File Storage 10.5.0.140 host-10-5-0-140 OCI Tenancy Oracle Services Network File Storage Mount Target File Storage Mount Target
  11. Swingbenchで作成 検証で使用するデータはSwingbenchで作成 下記のようにデータを作成すると、DBA_SEGMENTSで約1021GBのデータが作成される 使用するデータ nohup ./oewizard -cs //10.5.1.108:1521/oradb -dba "sys

    as sysdba" -dbap Welcome#1Welcome#1 -u scott -p tiger -ts users -scale 1000 -part -nocompress -create -cl -ts users -noindexes -v & SQL> SELECT owner, SUM(bytes/1024/1024/1024) "BYTES(GB)" FROM dba_segments WHERE owner = 'SCOTT' GROUP BY owner; OWNER BYTES(GB) ------- ---------- SCOTT 1021.92725 Copyright © 2023, Oracle and/or its affiliates 21 • SCOTTスキーマを移行対象オブジェクトとします
  12. 全体手順 事前設定 • ダンプファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • 初期化パラメータ

    STREAMS_POOL_SIZEの 設定 エクスポート • ディクショナリ統計の収集 • ダンプファイル・サイズの見積もり • パラメータ・ファイルの作成 • expdpコマンドの実行 ダンプファイルの 転送 • scpを使用したターゲットDBへ のダンプファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Data Pump手順 Copyright © 2023, Oracle and/or its affiliates 24
  13. 構成図 Data Pump手順 Copyright © 2023, Oracle and/or its affiliates

    25 ap-osaka-1 ap-tokyo-1 AD1 AD1 VCN(ソース) : peeringVCN_Kix Public (10.5.0.0/24) Private (10.5.1.0/24) VCN(ターゲット) : peeringVCN Private (10.0.1.0/24) Internet Internet GW DRG DRG Remote Peering 踏み台サーバ ターゲットDB ソースDBサーバ 10.5.1.124 host-10-5-1-124 OCI Tenancy Cust Tenancy Oracle Services Network File Storage File Storage 10.5.0.140 host-10-5-0-140 OCI Tenancy Oracle Services Network File Storage Mount Target File Storage Mount Target 10.0.1.41 TargetMiya1 DB1 Block Storage
  14. 移行の流れ Data Pump手順 Copyright © 2023, Oracle and/or its affiliates

    26 expdp impdp scp .dmpファイル .dmpファイル ソースDB ターゲットDB
  15. 2023年3月開催分の第65回でData Pumpの概要とTipsについてご紹介しております その他Data Pumpの細かい設定方法について Copyright © 2023, Oracle and/or its

    affiliates 27 資料: https://speakerdeck.com/oracle4engineer/technight-fy23-mar-number-65-2-oracledatabasemigrationtooltips セミナー動画: https://youtu.be/fGgx9XK3gDE
  16. 全体手順 事前設定 • ダンプファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • 初期化パラメータ

    STREAMS_POOL_SIZEの 設定 エクスポート • ディクショナリ統計の収集 • ダンプファイル・サイズの見積もり • パラメータ・ファイルの作成 • expdpコマンドの実行 ダンプファイルの 転送 • scpを使用したターゲットDBへ のダンプファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Data Pump手順 Copyright © 2023, Oracle and/or its affiliates 28
  17. ダンプファイル用のディレクトリの準備 ダンプ・ファイルを保管するディレクトリを作成し、ディレクトリ・パスをディレクトリ・オブジェクトとして指定します ディレクトリ名とディレクトリの配置は任意ですが、ディレクトリにダンプファイルを保管できる十分な領域を確保してください Data Pump手順 – 事前設定 Copyright © 2023,

    Oracle and/or its affiliates 29 $ mkdir /tmp/datapump $ chmod 777 /tmp/datapump SQL> create directory dump_dir as '/tmp/datapump’; ソースDB環境とターゲットDB環境で実行するコマンド: select directory_name, directory_path from dba_directories where directory_name='DUMP_DIR'; 確認コマンド:
  18. expdp/impdpコマンド実行ユーザの作成 Data Pumpのexpdp/impdpコマンドを実行するためのユーザを準備します (専用のスキーマ作成を推奨) エクスポートおよびインポート操作に必要な権限を付与します Data Pump手順 – 事前設定 Copyright

    © 2023, Oracle and/or its affiliates 30 SQL> create user dpuser identified by password; SQL> alter user dpuser quota unlimited on users; SQL> grant read, write on directory dump_dir to dpuser; SQL> grant datapump_exp_full_database to dpuser; SQL> grant datapump_imp_full_database to dpuser; ソースDBとターゲットDBで実行するコマンド: ソースDBで実行するコマンド: ターゲットDBで実行するコマンド:
  19. 初期化パラメータSTREAMS_POOL_SIZEの設定 Data Pumpではメモリ領域であるSTREAMS_POOL_SIZEを使用して処理を行うため、領域の確保が必要となります 64Mから256Mの範囲が推奨となっています Data Pump手順 – 事前設定 Copyright ©

    2023, Oracle and/or its affiliates 31 SQL> select current_size/1024/1024 as current_size_mb from v$sga_dynamic_components where component='streams pool'; STREAMS_POOL_SIZEの値を確認します STREAMS_POOL_SIZEの値を指定するコマンド(不足する場合): SQL> alter system set streams_pool_size=256m scope=both; CURRENT_SIZE_MB --------------- 128 実行結果:
  20. 全体手順 事前設定 • ダンプファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • 初期化パラメータ

    STREAMS_POOL_SIZEの 設定 エクスポート • ディクショナリ統計の収集 • ダンプファイル・サイズの見積もり • パラメータ・ファイルの作成 • expdpコマンドの実行 ダンプファイルの 転送 • scpを使用したターゲットDBへ のダンプファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Data Pump手順 Copyright © 2023, Oracle and/or its affiliates 32
  21. ディクショナリ統計の収集 エクスポートを実行する前にディクショナリ統計を収集して最新の統計情報を維持します Data Pump手順 – エクスポート Copyright © 2023, Oracle

    and/or its affiliates 33 SQL> begin dbms_stats.gather_schema_stats('SYS'); dbms_stats.gather_schema_stats('SYSTEM'); end; ソースDBで実行するコマンド:
  22. ダンプファイル・サイズの見積もり expdpコマンドにESTIMATEパラメータおよびESTIMATE_ONLYパラメータを指定して、ファイルのサイズを見積もります ダンプファイルを生成せず、出力されるダンプファイルのサイズに対して準備した領域が十分か確認できます Data Pump手順 – エクスポート Copyright © 2023,

    Oracle and/or its affiliates 34 $ expdp dpuser/Welcome1 full=y directory=dump_dir estimate=statistics estimate_only=y; estimate=statisticsを指定して実行する $ expdp dpuser/Welcome1 full=y directory=dump_dir estimate=blocks estimate_only=y; estimate=blocksを指定して実行する モードの種類 定義 BLOCKS ブロックサイズにオブジェクトのブロック数をかけて見積もる(精度は高くない) STATISTICS 統計情報を元に見積もる 表1. ESTIMATEパラメータのモードについて
  23. ダンプファイル・サイズの見積もり Data Pump手順 – エクスポート Copyright © 2023, Oracle and/or

    its affiliates 35 ***省略*** Total estimation using STATISTICS method: 796.9 GB Job "DPUSER"."SYS_EXPORT_FULL_01" successfully completed at Fri Mar 10 05:56:31 2023 elapsed 0 00:00:02 estimate=statisticsを指定した実行結果: ***省略*** Total estimation using BLOCKS method: 1023. GB Job "DPUSER"."SYS_EXPORT_FULL_02" successfully completed at Fri Mar 10 05:59:06 2023 elapsed 0 00:00:03 estimate=blocksを指定した実行結果: 実際にexpdpを実行して作成されたダンプファイルの総容量は846 GBでした STATISTICSモードの方が正確であることが確認できました
  24. パラメータ・ファイルの作成 エクスポート(expdp)の実行に使用するパラメータ・ファイルを作成します 本検証では、ファイル圧縮ありのパターンと圧縮なしのパターンで実行しました Data Pump手順 – エクスポート Copyright © 2023,

    Oracle and/or its affiliates 36 schemas=scott parallel=8 directory=dump_dir dumpfile=dumpfile%U.dmp filesize=50g exclude=statistics logtime=all metrics=yes compression=all compression_algorithm=medium logfile=export_1.log schemas=scott parallel=8 directory=dump_dir dumpfile=dumpfile%U.dmp filesize=50g exclude=statistics logtime=all metrics=yes #compression=all #compression_algorithm=medium logfile=export_2.log 圧縮ありのパラメータ・ファイル(expdp.par): 圧縮なしのパラメータ・ファイル(expdp.par):
  25. expdpコマンドの実行 エクスポートを実行します Data Pump手順 – エクスポート Copyright © 2023, Oracle

    and/or its affiliates 37 $ expdp dpuser/password parfile=expdp.par Export: Release 12.1.0.2.0 - Production on Tue May 2 07:19:18 2023 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. ;;; Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options 02-MAY-23 07:19:19.911: Starting "DPUSER"."SYS_EXPORT_SCHEMA_01": dpuser/******** parfile=expdp.par ***省略*** 02-MAY-23 08:19:21.938: Job "DPUSER"."SYS_EXPORT_SCHEMA_01" successfully completed at Tue May 2 08:19:21 2023 elapsed 0 01:00:03 実行コマンド: 実行結果:
  26. expdpコマンドの実行 エクスポートされたダンプファイルを確認します Data Pump手順 – エクスポート Copyright © 2023, Oracle

    and/or its affiliates 38 $ ls -lha /tmp/datapump total 846G drwxrwxrwx. 2 oracle oinstall 4.0K Mar 13 12:43 . drwxrwxrwx. 5 root root 68 Mar 13 02:53 .. -rw-r-----. 1 oracle oinstall 50G Mar 13 12:21 dumpfile01.dmp -rw-r-----. 1 oracle oinstall 50G Mar 13 12:20 dumpfile02.dmp ***省略*** -rw-r-----. 1 oracle oinstall 4.8G Mar 13 12:46 dumpfile24.dmp -rw-r--r--. 1 oracle oinstall 28K Mar 13 12:46 export_1.log ダンプファイルが配置されているディレクトリを確認します 圧縮なしの実行結果: total 352G drwxrwxrwx. 2 oracle oinstall 4.0K Mar 30 01:54 . drwxrwxrwx. 5 root root 68 Mar 13 02:53 .. -rw-r-----. 1 oracle oinstall 44G Mar 30 02:54 dumpfile01.dmp -rw-r-----. 1 oracle oinstall 44G Mar 30 02:54 dumpfile02.dmp ***省略*** -rw-r-----. 1 oracle oinstall 44G Mar 30 02:54 dumpfile08.dmp -rw-r--r--. 1 oracle oinstall 23K Mar 30 02:54 export_2.log 圧縮ありの実行結果:
  27. 全体手順 事前設定 • ダンプファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • 初期化パラメータ

    STREAMS_POOL_SIZEの 設定 エクスポート • ディクショナリ統計の収集 • ダンプファイル・サイズの見積もり • パラメータ・ファイルの作成 • expdpコマンドの実行 ダンプファイルの 転送 • scpを使用したターゲットDBへ のダンプファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Data Pump手順 Copyright © 2023, Oracle and/or its affiliates 39
  28. scpを使用したターゲットDBへのダンプファイルの転送 scpコマンドを使用してダンプファイルをソースDB環境からターゲットDB環境に転送します nohupをscpの前につけて実行することで、転送中にセッションが切れても転送を継続させることができます Data Pump手順 – ダンプファイルの転送 Copyright © 2023,

    Oracle and/or its affiliates 40 $ nohup scp -i /home/opc/.ssh/ssh-key-2022-10-31.key /tmp/datapump/dumpfile* [email protected]:/tmp/datapump nohupを使用したscpコマンド: $ jobs -l ジョブの状態を確認するコマンド: 転送が完了すると以下のように出力される $ jobs –l [1]+ Done nohup scp –i /home/opc/.ssh/ssh-key-2022-10-31.key /tmp/datapump/dumpfile* [email protected]:/tmp/datapump
  29. 全体手順 事前設定 • ダンプファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • 初期化パラメータ

    STREAMS_POOL_SIZEの 設定 エクスポート • ディクショナリ統計の収集 • ダンプファイル・サイズの見積もり • パラメータ・ファイルの作成 • expdpコマンドの実行 ダンプファイルの 転送 • scpを使用したターゲットDBへ のダンプファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Data Pump手順 Copyright © 2023, Oracle and/or its affiliates 41
  30. パラメータ・ファイルの作成 Data Pump手順 – インポート Copyright © 2023, Oracle and/or

    its affiliates 42 インポート(impdp)の実行に使用するパラメータ・ファイルを作成します インポートでは圧縮ありのパターンと圧縮なしのパターンの両方に対して同じパラメータ・ファイルで実行します schemas=scott parallel=8 directory=dump_dir dumpfile=dumpfile%L.dmp exclude=statistics logtime=all metrics=yes transform=lob_storage:securefile remap_tablespace=users:datapump_test logfile=import_1.log インポート用のパラメータ・ファイル(impdp.par):
  31. impdpコマンドの実行 Data Pump手順 – インポート Copyright © 2023, Oracle and/or

    its affiliates 43 インポートを実行します $ impdp dpuser/password parfile=impdp.par Import: Release 19.0.0.0.0 - Production on Tue May 2 18:20:53 2023 Version 19.16.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. ;;; Connected to: Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production ***省略*** 02-MAY-23 22:14:22.925: Job "DPUSER"."SYS_IMPORT_SCHEMA_01" successfully completed at Tue May 2 22:14:22 2023 elapsed 0 03:53:28 実行コマンド: 実行結果:
  32. 移行データの確認 移行データを確認します ソースDBとのデータ量を比較します Data Pump手順 – インポート Copyright © 2023,

    Oracle and/or its affiliates 44 SIZE[GB] ---------- 1017.89063 実行結果(ターゲットDB): SQL> select sum(bytes)/(1024*1024*1024)"SIZE[GB]" from dba_segments where owner='SCOTT'; 実行コマンド: SIZE[GB] ---------- 1021.92725 実行結果(ソースDB):
  33. 移行データの確認 Data Pump手順 – インポート Copyright © 2023, Oracle and/or

    its affiliates 45 移行したスキーマのテーブルの種類やオブジェクトの数がソースDBとターゲットDBで一致するか確認する SQL> select table_name from dba_tables where owner = 'SCOTT'; テーブル一覧の確認(ソースDB、ターゲットDB) SQL> select count(*) from scott.customers; テーブルそれぞれのレコード数の確認(ソースDB、ターゲットDB) SQL> select object_name, object_type from dba_objects where owner = 'SCOTT' order by object_name; スキーマ所有のオブジェクト一覧の確認(ソースDB、ターゲットDB):
  34. ディクショナリ統計の収集 Data Pump手順 – インポート Copyright © 2023, Oracle and/or

    its affiliates 46 インポートを実行した後にディクショナリ統計を収集して最新の統計情報を維持します SQL> begin dbms_stats.gather_schema_stats('SYS'); dbms_stats.gather_schema_stats('SYSTEM'); end; ターゲットDBで実行するコマンド:
  35. Copyright © 2023, Oracle and/or its affiliates 48 Data Pump結果

    処理時間 各実行コマンドの処理時間を表. 2に示します コマンド 処理時間(圧縮なし) 処理時間(圧縮あり) expdp 48分40秒 1時間3秒 scp 1時間23分 37分 impdp 3時間58分6秒 3時間53分28秒 合計 6時間9分46秒 5時間30分31秒 • 圧縮ありと圧縮なしでは圧縮ありの方が全体的な実行時間は約30分短くなりました • 想定されるダウンタイムは約5時間半~6時間 • 圧縮ありでは圧縮処理があるためエクスポートの処理時間が長くなり、容量が少ない分、 ファイル転送時間が短くなります 表. 2 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  36. Copyright © 2023, Oracle and/or its affiliates 49 Data Pump結果

    各工程の想定作業時間 事前設定からインポート完了までに想定される作業時間を表. 3に示します 工程 想定される作業時間(処理時間を含む/圧縮なし) 事前設定 30分 ダンプファイル・サイズの見積もり 1時間 パラメータ・ファイルの作成 6時間 エクスポートの実行 1時間 ダンプファイルの転送 2時間 インポートの実行 4時間 移行データの確認 30分 合計 15時間 • expdp/impdpコマンドやダンプファイル転送用のscpコマンドの処理時間を含め、想定される作業時間が 合計約15時間 表. 3 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  37. 負荷情報 – 圧縮なし/Export Data Pump結果 Copyright © 2023, Oracle and/or

    its affiliates 50 • ソースDBのシェイプ情報とData Pumpのパラレル・パラメータ • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 • メモリー(GB):64 • PARALLEL=8 • CPU使用率 user: (Avg.)6.77% user+sys: (Avg.)14.07%
  38. • メモリー使用率 • I/O Write Throughput kB/s , Write IOPS

    負荷情報 – 圧縮なし/Export Data Pump結果 Copyright © 2023, Oracle and/or its affiliates 51 (Avg.) 99.35% (Avg.) 296308.48kB/s (Avg.) 366.45
  39. • ターゲットDBのシェイプ情報とData Pumpのパラレル・パラメータ • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 •

    メモリー(GB):64 • PARALLEL=8 • CPU使用率 負荷情報 – 圧縮なし/Import Data Pump結果 Copyright © 2023, Oracle and/or its affiliates 52 user: (Avg.) 25.91% user+sys: (Avg.) 47.6%
  40. • メモリー使用率 • I/O Read Throughput kB/s , Read IOPS

    負荷情報 – 圧縮なし/Import Data Pump結果 Copyright © 2023, Oracle and/or its affiliates 53 (Avg.) 97.63% (Avg.) 43980.16kB/s (Avg.) 59.23
  41. 負荷情報 – 圧縮あり/Export Data Pump結果 Copyright © 2023, Oracle and/or

    its affiliates 54 • ソースDBのシェイプ情報とData Pumpのパラレル・パラメータ • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 • メモリー(GB):64 • PARALLEL=8 • CPU使用率 user: (Avg.) 75.59% user+sys: (Avg.) 82.81%
  42. • メモリー使用率 • I/O Write Throughput kB/s , Write IOPS

    負荷情報 – 圧縮あり/Export Data Pump結果 Copyright © 2023, Oracle and/or its affiliates 55 (Avg.) 98.02% (Avg.) 92853.51kB/s (Avg.) 103.57
  43. • ターゲットDBのシェイプ情報とData Pumpのパラレル・パラメータ • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 •

    メモリー(GB):64 • PARALLEL=8 • CPU使用率 負荷情報 – 圧縮あり/Import Data Pump結果 Copyright © 2023, Oracle and/or its affiliates 56 user: (Avg.) 28.2% user+sys: (Avg.) 47.06%
  44. • メモリー使用率 • I/O Read Throughput kB/s , Read IOPS

    負荷情報 – 圧縮あり/Import Data Pump結果 Copyright © 2023, Oracle and/or its affiliates 57 (Avg.) 96.72% (Avg.) 44386.68kB/s (Avg.) 58.38
  45. 負荷情報 – 比較表 表4. に圧縮なしと圧縮ありのExportおよびImport実行時の負荷情報の比較表を示します。 Data Pump結果 Copyright © 2023,

    Oracle and/or its affiliates 58 メトリック 圧縮なし/Export 圧縮あり/Export 圧縮なし/Import 圧縮あり/Import CPU使用率(user) 6.77% 75.59% 25.91% 28.2% CPU使用率(user+sys) 14.07% 82.81% 47.6% 47.06% メモリー使用率 99.35% 98.02% 97.63% 96.72% I/O Write Throughput kB/s 296308.48kB/s 92853.51kB/s - - Write IOPS 366.45 103.57 - - I/O Read Throughput kB/s - - 43980.16kB/s 44386.68kB/s Read IOPS - - 59.23 58.38 表4. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  46. Data Pumpジョブの中断、再開、強制終了 Data Pumpでエクスポートおよびインポートの実行を中断したい場合は、「Ctrl + C」を1回押します ※ stop_jobコマンドを実行し、続いての確認に対して「yes」と入力すると中断され、コンソールに復帰します Data Pump

    Tips Copyright © 2023, Oracle and/or its affiliates 60 22-JUN-23 08:31:28.099: Completed 1 TABLESPACE_QUOTA objects in 0 seconds 22-JUN-23 08:31:28.100: Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA ^C Export> stop_job Are you sure you wish to stop this job ([yes]/no): yes [oracle@host-10-5-1-231]$ 以下に操作例を示します ※ 「Ctrl + C」を2回押してしまうと実行中のままコンソールに復帰してしまいます 続いて、SQL*Plusへ接続してジョブの名前を確認します SQL> SELECT * FROM DBA_DATAPUMP_JOBS; OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS ---------- -------------------- ---------- ---------- --------------- ---------- ----------------- ----------------- DPUSER SYS_EXPORT_SCHEMA_01 EXPORT SCHEMA NOT RUNNING 0 0 0
  47. Data Pumpジョブの中断、再開、強制終了 Data Pump Tips Copyright © 2023, Oracle and/or

    its affiliates 61 $ expdp dpuser/Welcome1 attach=SYS_EXPORT_SCHEMA_01 Export> start_job SQL*Plusを終了し、以下のコマンドを実行するとジョブを再開できます [oracle@host-10-5-1-231]$ expdp dpuser/Welcome1 attach=SYS_EXPORT_SCHEMA_01 Export: Release 12.1.0.2.0 - Production on Thu Jun 22 08:41:57 2023 ***省略*** Job: SYS_EXPORT_SCHEMA_01 Owner: DPUSER Operation: EXPORT ***省略*** Process Name: DW07 State: UNDEFINED Export> start_job 実行例:
  48. Data Pumpジョブの中断、再開、強制終了 Data Pump Tips Copyright © 2023, Oracle and/or

    its affiliates 62 $ expdp dpuser/Welcome1 attach=SYS_EXPORT_SCHEMA_01 Export> kill_job Are you sure you wish to stop this job ([yes]/no): yes SQL*Plusを終了し、以下のコマンドを実行するとジョブを強制終了できます [oracle@host-10-5-1-231]$ expdp dpuser/Welcome1 attach=SYS_EXPORT_SCHEMA_01 Export: Release 12.1.0.2.0 - Production on Thu Jun 22 08:47:23 2023 ***省略*** Job: SYS_EXPORT_SCHEMA_01 Owner: DPUSER Operation: EXPORT ***省略*** Process Name: DW07 State: UNDEFINED Export> kill_job Are you sure you wish to stop this job ([yes]/no): yes [oracle@host-10-5-1-231]$ 実行例:
  49. コンパイル・エラー(ORA-39082)の処理 インポートで以下のようなエラーが発生する場合があります Data Pump Tips Copyright © 2023, Oracle and/or

    its affiliates 63 28-MAR-23 23:56:37.663: ORA-39082: Object type PACKAGE BODY:"SCOTT"."ORDERENTRY" created with compilation warnings 28-MAR-23 23:56:37.868: Job "DPUSER"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at Tue Mar 28 23:56:37 2023 elapsed 0 09:51:33
  50. コンパイル・エラー(ORA-39082)の処理 Data Pump Tips Copyright © 2023, Oracle and/or its

    affiliates 64 SQL> SELECT OWNER,OBJECT_NAME,OBJECT_TYPE,STATUS FROM ALL_OBJECTS WHERE STATUS = 'INVALID'; OWNER OBJECT_NAME OBJECT_TYPE STATUS ----------- -------------------- ------------------ ---------------- SCOTT ORDERENTRY PACKAGE BODY INVALID SQL> show errors package body scott.orderentry Errors for PACKAGE BODY SCOTT.ORDERENTRY: LINE/COL ERROR -------- ----------------------------------------------------------------- 104/13 PL/SQL: Statement ignored 104/13 PLS-00201: identifier 'DBMS_LOCK' must be declared 107/13 PL/SQL: Statement ignored 107/13 PLS-00201: identifier 'DBMS_LOCK' must be declared 194/11 PL/SQL: SQL Statement ignored 195/40 PL/SQL: ORA-00932: inconsistent datatypes: expected DATE got TIME WITH TIME ZONE エラー内容を確認します
  51. コンパイル・エラー(ORA-39082)の処理 Data Pump Tips Copyright © 2023, Oracle and/or its

    affiliates 65 SQL> EXECUTE UTL_RECOMP.RECOMP_SERIAL('SCOTT'); PL/SQL procedure successfully completed. 再コンパイルコマンドを実行します SQL> show errors package body scott.orderentry Errors for PACKAGE BODY SCOTT.ORDERENTRY: LINE/COL ERROR -------- ----------------------------------------------------------------- 104/13 PL/SQL: Statement ignored 104/13 PLS-00201: identifier 'DBMS_LOCK' must be declared 107/13 PL/SQL: Statement ignored 107/13 PLS-00201: identifier 'DBMS_LOCK' must be declared エラー内容を確認します
  52. コンパイル・エラー(ORA-39082)の処理 Data Pump Tips Copyright © 2023, Oracle and/or its

    affiliates 66 SQL> GRANT EXECUTE ON DBMS_LOCK TO scott; Grant succeeded. SQL> EXECUTE UTL_RECOMP.RECOMP_SERIAL('SCOTT'); PL/SQL procedure successfully completed. SCOTTにDBMS_LOCK権限を付与し、もう一度再コンパイルコマンドを実行します SQL> SHOW ERRORS PACKAGE BODY SOE.ORDERENTRY No errors. エラー内容を確認します
  53. 全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの

    準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 69
  54. 構成図 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its

    affiliates 70 ap-osaka-1 ap-tokyo-1 AD1 AD1 VCN(ソース) : peeringVCN_Kix Public (10.5.0.0/24) Private (10.5.1.0/24) VCN(ターゲット) : peeringVCN Private (10.0.1.0/24) Internet Internet GW DRG DRG Remote Peering 踏み台サーバ ターゲットDB ソースDBサーバ 10.5.1.124 host-10-5-1-124 OCI Tenancy Cust Tenancy Oracle Services Network File Storage File Storage 10.5.0.140 host-10-5-0-140 OCI Tenancy Oracle Services Network File Storage Mount Target File Storage Mount Target 10.0.1.147 TargetMiya2 DB2 Block Storage
  55. 移行の流れ Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its

    affiliates 71 expdp impdp scp .dmpファイル(メタデータ) + .dbfファイル(表領域のデータ) ソースDB ターゲットDB .dmpファイル(メタデータ) + .dbfファイル(表領域のデータ)
  56. 全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの

    準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 72
  57. エンディアン形式の確認 ソースDBとターゲットDBでエンディアン形式が異なる場合は移行できません 両方の環境でエンディアン形式の確認をします Full Transportable Export/Import手順 – 事前設定 Copyright ©

    2023, Oracle and/or its affiliates 73 SQL> SELECT d.PLATFORM_NAME, ENDIAN_FORMAT FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d WHERE tp.PLATFORM_ID = d.PLATFORM_ID; PLATFORM_NAME -------------------------------------------------------------------------------- ENDIAN_FORMAT -------------- Linux x86 64-bit Little 以下のように確認する エンディアン形式がソースDBとターゲットDBで異なる場合、Oracle Recovery Manager(Oracle RMAN)の CONVERTコマンドか、DBMS_FILE_TRANSFERパッケージのGET_FILEまたはPUT_FILEプロシージャを使用して、 転送されるデータファイルをターゲット・プラットフォームの形式に変換する必要があります
  58. 転送対象の表領域が自己完結型であることの確認 Full Transportable Export/Importでは、管理表領域(SYSTEMやSYSAUXなど)とユーザー定義表領域の両方で 定義されているデータベース・オブジェクトは転送できません たとえば、パーティション表は、ユーザー定義表領域と管理表領域の両方に格納されることがあります Full Transportable Export/Import手順 –

    事前設定 Copyright © 2023, Oracle and/or its affiliates 74 SQL> EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('USERS', TRUE); PL/SQL procedure successfully completed. SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS; no rows selected 自己完結型のオブジェクトがあるかのチェックコマンド(ソースDBで実行) • 上記のように表示されるビューが空の場合はすべての転送対象の表領域が自己完結型です • 表が表示される場合は外部に対して参照を持っているため、対象から外すか、管理表領域またはユーザー定義表 領域のいずれかに格納されるように再定義するなどして、解決する必要があります
  59. ダンプファイルと表領域のデータ・ファイル用のディレクトリの準備 Full Transportable Export/Import手順 – 事前設定 Copyright © 2023, Oracle

    and/or its affiliates 75 ダンプ・ファイルと表領域のデータファイル(ターゲットDB環境のみ)を保管するディレクトリを作成し、ディレクトリ・パスを ディレクトリ・オブジェクトとして指定します ディレクトリ名とディレクトリの配置は任意ですが、ディレクトリにダンプファイルを保管できる十分な領域を確保してください $ mkdir /tmp/fttdatapump $ chmod 777 /tmp/fttdatapump SQL> create directory dp_dir as '/tmp/fttdatapump’; ソースDB環境とターゲットDB環境で実行するコマンド: select directory_name, directory_path from dba_directories where directory_name='DP_DIR'; 確認コマンド: $ mkdir /tmp/dbf $ chmod 777 /tmp/dbf ターゲットDB環境に表領域のデータファイル用のディレクトリを作成する
  60. expdp/impdpコマンド実行ユーザの作成 Full Transportable Export/Import手順 – 事前設定 Copyright © 2023, Oracle

    and/or its affiliates 76 Data Pumpのexpdpコマンドを実行するためのユーザを準備します (専用のスキーマ作成を推奨) エクスポート操作に必要な権限を付与します SQL> create user dpuser identified by password; SQL> alter user dpuser quota unlimited on users; SQL> grant read, write on directory dump_dir to dpuser; SQL> alter user dpuser default tablespace system; SQL> alter user dpuser quota unlimited on users; SQL> grant datapump_exp_full_database to dpuser; ソースDBで実行するコマンド: • 移行対象の表領域がUSERSの場合、実行ユーザ(dpuser)のデフォルト表領域をUSERSに設定すると、 expdp実行の際にエラーになるため、別の表領域(※)に変更する必要があります ⇒ エラーの詳細、(※)に関しては本資料の「 Full Transportable Export/Import Tips」の項目に記述します
  61. expdp/impdpコマンド実行ユーザの作成 Full Transportable Export/Import手順 – 事前設定 Copyright © 2023, Oracle

    and/or its affiliates 77 Data Pumpのimpdpコマンドを実行するためのユーザを準備します (専用のスキーマ作成を推奨) エクスポート操作に必要な権限を付与します SQL> create user dpuser identified by password; SQL> alter user dpuser quota unlimited on users; SQL> grant read, write on directory dump_dir to dpuser; SQL> grant datapump_imp_full_database to dpuser; ターゲットDBで実行するコマンド:
  62. 全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの

    準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 79
  63. ディクショナリ統計の収集 Full Transportable Export/Import手順 – エクスポート Copyright © 2023, Oracle

    and/or its affiliates 80 エクスポートを実行する前にディクショナリ統計を収集して最新の統計情報を維持します SQL> begin dbms_stats.gather_schema_stats('SYS'); dbms_stats.gather_schema_stats('SYSTEM'); end; ターゲットDBで実行するコマンド:
  64. 表領域の読取り専用モードへの設定 エクスポート期間中は、転送される表領域を読取り専用モードにする必要があります Full Transportable Export/Import手順 – エクスポート Copyright © 2023,

    Oracle and/or its affiliates 81 SQL> alter tablespace users read only; ソースDBで実行するコマンド: SQL> select status from dba_tablespaces where tablespace_name = 'USERS’; STATUS --------- READ ONLY 確認コマンド: • エクスポートが完了し、表領域のデータファイルがターゲットDB環境に転送されたら、 表領域を読取り/書込みモードに戻すことができます
  65. パラメータ・ファイルの作成 エクスポート(expdp)の実行に使用するパラメータ・ファイルを作成します Full Transportable Export/Import手順 – エクスポート Copyright © 2023,

    Oracle and/or its affiliates 82 full=y transportable=always directory=dp_dir dumpfile=dumpfile%U.dmp exclude=statistics logtime=all metrics=yes logfile=export_1.log エクスポート用のパラメータ・ファイル(ftexpdp.par): • full=yとtransportable=alwaysを指定することで、Full Transportable Exportが実行されます
  66. expdpコマンドの実行 Full Transportable Export/Import手順 – エクスポート Copyright © 2023, Oracle

    and/or its affiliates 83 エクスポートを実行します $ expdp dpuser/password@pdb parfile=ftexpdp.par Export: Release 12.1.0.2.0 - Production on Mon May 1 05:52:48 2023 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. ;;; Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options 01-MAY-23 05:52:50.842: Starting "DPUSER"."SYS_EXPORT_FULL_01": dpuser/******** parfile=ftexp.par ***省略*** 01-MAY-23 05:54:07.923: Job "DPUSER"."SYS_EXPORT_FULL_01" successfully completed at Mon May 1 05:54:07 2023 elapsed 0 00:01:18 実行コマンド: 実行結果:
  67. expdpコマンドの実行 エクスポートされたダンプファイルを確認します Data Pump手順 – エクスポート Copyright © 2023, Oracle

    and/or its affiliates 84 [oracle@host-10-5-1-231 fttdatapump]$ ls -lha total 2.9M drwxrwxrwx. 2 root root 84 Apr 10 02:55 . drwxrwxrwx. 5 root root 68 Mar 13 02:53 .. -rw-r-----. 1 oracle oinstall 2.9M Apr 10 02:56 dumpfile01.dmp -rw-r--r--. 1 oracle oinstall 21K Apr 10 02:49 export_1.log ダンプファイルが配置されているディレクトリを確認します
  68. 全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの

    準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 85
  69. scpを使用したターゲットDBへのダンプファイルと表領域のデータファイルの転送 Full Transportable Export/Import手順 – ダンプファイルと表領域のデータファイル の転送 Copyright © 2023,

    Oracle and/or its affiliates 86 scpコマンドを使用してダンプファイルと表領域のデータファイルをソースDB環境からターゲットDB環境に転送します nohupをscpの前につけて実行することで、転送中にセッションが切れても転送を継続させることができます $ nohup scp -i /home/opc/.ssh/ssh-key-2022-10-31.key /tmp/fttdatapump/dumpfile* [email protected]:/tmp/fttdatapump $ nohup scp -i /home/opc/.ssh/ssh-key-2022-10-31.key /u01/app/oracle/oradata/oradb/users* [email protected]:/tmp/dbf nohupを使用したscpコマンド: $ jobs -l ジョブの状態を確認するコマンド: 転送が完了すると以下のように出力される $ jobs –l [1]+ Done nohup scp –i /home/opc/.ssh/ssh-key-2022-10-31.key /tmp/datapump/dumpfile* [email protected]:/tmp/datapump
  70. 全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの

    準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 87
  71. パラメータ・ファイルの作成 Full Transportable Export/Import手順 – インポート Copyright © 2023, Oracle

    and/or its affiliates 88 インポート(impdp)の実行に使用するパラメータ・ファイルを作成します directory=dp_dir dumpfile=dumpfile%L.dmp exclude=statistics logtime=all metrics=yes transport_datafiles=/tmp/dbf/users*.dbf logfile=import_1.log インポート用のパラメータ・ファイル(ftimpdp.par): • transport_datafilesにソースDBから転送してきた表領域のデータファイルを指定することで、 Full Transportable Importが実行されます
  72. impdpコマンドの実行 Full Transportable Export/Import手順 – インポート Copyright © 2023, Oracle

    and/or its affiliates 89 インポートを実行します $ impdp dpuser/password@pdb parfile=ftimpdp.par Import: Release 19.0.0.0.0 - Production on Mon May 1 18:30:42 2023 Version 19.16.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. ;;; Connected to: Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 – Production ***省略*** 01-MAY-23 18:32:10.556: Job "DPUSER"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Mon May 1 18:32:10 2023 elapsed 0 00:01:26 実行コマンド: 実行結果:
  73. 移行データの確認 Full Transportable Export/Import手順 – インポート Copyright © 2023, Oracle

    and/or its affiliates 90 移行データを確認します ソースDBとのデータ量を比較します SQL> select sum(bytes)/(1024*1024*1024)"SIZE[GB]" from dba_segments where owner='SCOTT'; 実行コマンド: SIZE[GB] ---------- 1021.92157 実行結果(ターゲットDB): SIZE[GB] ---------- 1021.92725 実行結果(ソースDB):
  74. 移行データの確認 Full Transportable Export/Import手順 – インポート Copyright © 2023, Oracle

    and/or its affiliates 91 移行したスキーマのテーブルの種類やオブジェクトの数がソースDBとターゲットDBで一致するか確認する SQL> select table_name from dba_tables where owner = 'SCOTT'; テーブル一覧の確認(ソースDB、ターゲットDB) SQL> select count(*) from scott.customers; テーブルそれぞれのレコード数の確認(ソースDB、ターゲットDB) SQL> select object_name, object_type from dba_objects where owner = 'SCOTT' order by object_name; スキーマ所有のオブジェクト一覧の確認(ソースDB、ターゲットDB):
  75. ディクショナリ統計の収集 Full Transportable Export/Import手順 – インポート Copyright © 2023, Oracle

    and/or its affiliates 92 インポートを実行した後にディクショナリ統計を収集して最新の統計情報を維持します SQL> begin dbms_stats.gather_schema_stats('SYS'); dbms_stats.gather_schema_stats('SYSTEM'); end; ターゲットDBで実行するコマンド:
  76. 処理時間 各実行コマンドの処理時間を表. 5に示します Full Transportable Export/Import結果 Copyright © 2023, Oracle

    and/or its affiliates 94 コマンド 処理時間 expdp 1分18秒 scp(ダンプファイル) 1秒 scp(表領域のデータファイル) 1時間38分 impdp 1分26秒 合計 1時間40分45秒 • 想定されるダウンタイムは約1時間40分 表. 5 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  77. 各工程の想定作業時間 事前設定からインポート完了までに想定される作業時間を表. 6に示します Full Transportable Export/Import結果 Copyright © 2023, Oracle

    and/or its affiliates 95 工程 想定される作業時間(処理時間を含む) 事前設定 2時間 パラメータ・ファイルの作成 6時間 エクスポートの実行 10分 ファイルの転送 2時間 インポートの実行 10分 移行データの確認 30分 合計 10時間50分 • expdp/impdpコマンドやダンプファイル転送用のscpコマンドの処理時間を含め、想定される作業時間が 合計約10時間50分 表. 6 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  78. • ソースDBのシェイプ情報 • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 • メモリー(GB):64

    • CPU使用率 負荷情報 - Export Full Transportable Export/Import結果 Copyright © 2023, Oracle and/or its affiliates 96 user: (Avg.) 7.25% user+sys: (Avg.) 8.25%
  79. • メモリー使用率 • I/O Write Throughput kB/s , Write IOPS

    負荷情報 - Export Full Transportable Export/Import結果 Copyright © 2023, Oracle and/or its affiliates 97 (Avg.) 44.61% (Avg.) 121kB/s (Avg.) 6.25
  80. • ターゲットDBのシェイプ情報 • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 • メモリー(GB):64

    • CPU使用率 負荷情報 - Import Full Transportable Export/Import結果 Copyright © 2023, Oracle and/or its affiliates 98 user: (Avg.) 11.5% user+sys: (Avg.) 13.75%
  81. • メモリー使用率 • I/O Read Throughput kB/s , Read IOPS

    負荷情報 - Import Full Transportable Export/Import結果 Copyright © 2023, Oracle and/or its affiliates 99 (Avg.) 96.89% (Avg.) 117.25kB/s (Avg.) 6.00
  82. 負荷情報 – 比較表 表7. に負荷情報の結果の比較表を示します Full Transportable Export/Import結果 Copyright ©

    2023, Oracle and/or its affiliates 100 メトリック Export Import CPU使用率(user) 7.25% 11.5% CPU使用率(user+sys) 8.25% 13.75% メモリー使用率 44.61% 96.89% I/O Write Throughput kB/s 121kB/s - Write IOPS 6.25 - I/O Read Throughput kB/s - 117.25kB/s Read IOPS - 6.00 表7. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  83. expdp実行ユーザのデフォルトの表領域の設定(ORA-01647) expdpコマンドを実行するユーザのデフォルト表領域が移行対象の表領域の場合、以下のようなエラーが発生します Full Transportable Export/Import Tips Copyright © 2023, Oracle

    and/or its affiliates 102 $ expdp dpuser/Welcome1 parfile=ftexp.par ***省略*** ORA-31626: job does not exist ORA-31633: unable to create master table "DPUSER.SYS_EXPORT_FULL_05" ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPV$FT", line 1048 ORA-01647: tablespace 'USERS' is read-only, cannot allocate space in it dpuserのデフォルト表領域をUSERS(移行対象の表領域)のまま実行 【原因】 • Data Pumpのエクスポートでは、制御プロセスが制御表を作成する領域が必要であり、読取り専用モードに設定し たデフォルト表領域であるUSERSに作成しようとするためエラーとなります 【解決策】 • 実行ユーザ(dpuser)のデフォルト表領域を読取り/書込みモードの表領域(※)に変更することで解決できます (※) 必要に応じてダミー表領域を作成してください
  84. 処理時間 表8. にData Pump(圧縮なし/あり)とFTEXの処理時間の結果の比較表を示します Data PumpとFull Transportable Export/Import結果比較 Copyright ©

    2023, Oracle and/or its affiliates 104 表8. コマンド Data Pump(圧縮なし) /処理時間 Data Pump(圧縮あり) /処理時間 FTEX/処理時間 expdp 48分40秒 1時間3秒 1分18秒 scp(ダンプファイル) 1時間23分 37分 1秒 scp(表領域のデー タファイル) - - 1時間38分 impdp 3時間58分6秒 3時間53分28秒 1分26秒 合計 6時間9分46秒 5時間30分31秒 1時間40分45秒 • FTEXはData Pumpの圧縮なしとありの両方と比較して、4時間ほど合計処理時間が短くなっています • FTEXのexpdp/impdpの処理では、表領域のデータファイルが含まれていない分、Data Pumpよりも処理時間が 短くなっているといえます • Data Pumpのダンプファイルの転送時間とFTEXのデータファイルの転送時間では差がそこまで出ませんでした ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  85. Copyright © 2023, Oracle and/or its affiliates 105 Data PumpとFull

    Transportable Export/Import結果比較 各工程の想定作業時間 事前設定からインポート完了までに想定される作業時間を表9.に示します 工程 DP 想定される作業時間(処理時間を含む /圧縮なし) FTEX 想定される作業時間(処理時間を 含む) 事前設定 30分 2時間 ダンプファイル・サイズの 見積もり 1時間 - パラメータ・ファイルの作成 6時間 6時間 エクスポートの実行 1時間 10分 ダンプファイルの転送 2時間 2時間 インポートの実行 4時間 10分 移行データの確認 30分 30分 合計 15時間 10時間50分 • FTEXの方がData Pumpよりも想定される作業時間は約4時間10分短くなっています 表9. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  86. 負荷情報 表10. にData PumpとFTEXのエクスポートとインポート時のそれぞれの負荷情報の結果の比較表を示します Data PumpとFull Transportable Export/Import結果比較 Copyright ©

    2023, Oracle and/or its affiliates 106 メトリック DP圧縮なし /Export DP圧縮あり /Export DP圧縮なし /Import DP圧縮あり /Import FTEX /Export FTEX /Import CPU使用率(user) 6.77% 75.59% 25.91% 28.2% 7.25% 11.5% CPU使用率 (user+sys) 14.07% 82.81% 47.6% 47.06% 8.25% 13.75% メモリー使用率 99.35% 98.02% 97.63% 96.72% 44.61% 96.89% I/O Write Throughput kB/s 296308.48kB/s 92853.51kB/s - - 121kB/s - Write IOPS 366.45 103.57 - - 6.25 - I/O Read Throughput kB/s - - 43980.16kB/s 44386.68kB/s - 117.25kB/s Read IOPS - - 59.23 58.38 - 6.00 表10. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。
  87. 全体結果考察 Full Transportable Export/ImportはData Pumpと比較して、エクスポートとインポート時の、 • 処理時間が短かった • データベースに対する負荷が全体的に低くかった Data

    Pumpのexpdp/impdp処理では移行対象のすべてのデータを処理するのに対し、 Full Transportable Export/Importでは、 表領域のデータファイルを含まず、メタデータのみ処理するため、このような結果になったと考えられる Data PumpとFull Transportable Export/Import結果比較 Copyright © 2023, Oracle and/or its affiliates 107
  88. Data PumpとFull Transportable Export/Import Data Pump • エクスポートとインポートの処理時間が長い • FTEXと比べて事前設定や確認事項が少ない

    • 異なるエンディアン間での移行が可能 • ターゲットDB環境に移行対象の表領域と同じ名称の表領 域が存在してもインポート可能 Full Transportable Export/Import • エクスポートとインポートの処理時間が短い • エクスポートとインポート時のデータベースに対する負荷が 小さい • 事前設定や確認事項が多い • 転送対象の表領域が自己完結型である必要がある • 異なるエンディアン間での移行の場合、事前にソースDB 側で変換作業が必要 • 転送される表領域を読取り専用モードにする必要が ある • ターゲットDB環境に移行対象の表領域と同じ名称の 表領域が存在する場合、インポートできない など 検証を通した考察と所感 Copyright © 2023, Oracle and/or its affiliates 109
  89. Data PumpとFull Transportable Export/Import Data Pump • エクスポートとインポートの処理時間が長い • FTEXと比べて事前設定や確認事項が少ない

    • 異なるエンディアン間での移行が可能 • ターゲットDB環境に移行対象の表領域と同じ名称の表領 域が存在してもインポート可能 Full Transportable Export/Import • エクスポートとインポートの処理時間が短い • エクスポートとインポート時のデータベースに対する負荷が 小さい • 事前設定や確認事項が多い • 転送対象の表領域が自己完結型である必要がある • 異なるエンディアン間での移行の場合、事前にソースDB 側で変換作業が必要 • 転送される表領域を読取り専用モードにする必要が ある • ターゲットDB環境に移行対象の表領域と同じ名称の 表領域が存在する場合、インポートできない • など 検証を通した考察と所感 Copyright © 2023, Oracle and/or its affiliates 110 複雑な構成のデータベース向け 大容量のデータベース向け
  90. システムのダウンタイム極小化を実現する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月現在 112 Copyright © 2023, Oracle and/or its affiliates
  91. 2023年3月開催分の第65回でZDMの概要とTipsについてご紹介しております Zero Downtime Migration Copyright © 2023, Oracle and/or its

    affiliates 113 資料: https://speakerdeck.com/oracle4engineer/technight-fy23-mar-number-65-2-oracledatabasemigrationtooltips セミナー動画: https://youtu.be/fGgx9XK3gDE
  92. ap-osaka-1 ap-tokyo-1 AD1 検証環境構成図 AD1 VCN(ソース) : peeringVCN_Kix Public (10.5.0.0/24)

    Private (10.5.1.0/24) VCN(ターゲット) : peeringVCN Private (10.0.1.0/24) Internet Internet GW DRG DRG Remote Peering 踏み台サーバ ターゲットDB ソースDBサーバ 10.5.1.66 host-10-5-1-66 OCI Tenancy Cust Tenancy Oracle Services Network Object Storage SG-1 File Storage File Storage 10.5.0.140 host-10-5-0-140 OCI Tenancy Oracle Services Network File Storage Mount Target File Storage Mount Target Block Storage 10.0.1.100 yamada2 ZDM 10.5.1.150 host-10-5-1-150 GoldenGate 10.5.1.239 ogg21core Copyright © 2023, Oracle and/or its affiliates 114
  93. 構築手順概要 1. インストール環境の構築 • ZDMをインストールするサーバー(ZDMサービスホスト)を準備する • インストールに必要なグループ、ユーザー、およびディレクトリを作成する • 必要なソフトウェア・パッケージをインストールする 2.

    ZDMバイナリのダウンロード 3. インストール前の準備 • ダウンロードしたZDMバイナリをZDMサービスホストに配置してファイルの所有者権限を設定する • ZDMバイナリのインストールに必要な環境変数の設定を行う 4. ZDMソフトウェアのインストール • ZDMバイナリのzipファイルを展開する • zdminstall.shを実行して、ZDMソフトウェアをインストールする • ZDMを起動してステータスを確認する ZDMサービスホストの構築 ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 116
  94. 1. インストール環境の構築 • ZDMサービスホストの作成 • OCI ComputeにてOracle Linux 7.9のインスタンスを作成する •

    作成時のリソース情報は下記の通り • イメージ:Oracle Linux 7.9 • Shape:VM.Standard.E4.Flex 1OCPU 16GB memory • ブート・ボリューム・サイズ:200GB • 作成したインスタンスにrootユーザーとしてログインする • ZDM用のグループ、ユーザー、ディレクトリを作成し、必要なソフトウェア・パッケージをインストールする ZDMサービスホストの構築 [root@zdmhost]# groupadd zdm [root@zdmhost]# useradd zdmuser -g zdm [root@zdmhost]# mkdir –p /home/zdmuser/zdminstall [root@zdmhost]# mkdir /home/zdmuser/zdmhome [root@zdmhost]# mkdir /home/zdmuser/zdmbase [root@zdmhost]# chown -R zdmuser:zdm /home/zdmuser/ [root@zdmhost]# yum -y install glibc-devel expect unzip libaio oraclelinux- developer-release-el7 ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 117
  95. 3. インストール前の準備 • ZDMバイナリをZDMサービスホストの/home/zdmuser/zdminstallディレクトリに配置する • zipファイルの所有者をzdmuserに変更する • ZDMユーザにログインして、ZDMソフトウェアのインストールに必要な環境変数の設定を行う ZDMサービスホストの構築 [root@zdmhost]#

    cd /home/zdmuser/zdminstall [root@zdmhost zdminstall]# chown zdmuser:zdm/home/zdmuser/zdminstall/zdm.zip [root@zdmhost zdminstall]# su – zdmuser [zdmuser@zdmhost ~]$ echo "ORACLE_HOME=/home/zdmuser/zdmhome; export ORACLE_HOME" >> ~/.bashrc [zdmuser@zdmhost ~]$ echo "ORACLE_BASE=/home/zdmuser/zdmbase; export ORACLE_BASE" >> ~/.bashrc [zdmuser@zdmhost ~]$ echo "ZDM_BASE=¥$ORACLE_BASE; export ZDM_BASE" >> ~/.bashrc [zdmuser@zdmhost ~]$ echo "ZDM_HOME=/home/zdmuser/zdmhome; export ZDM_HOME" >> ~/.bashrc [zdmuser@zdmhost ~]$ echo "ZDM_INSTALL_LOC=/home/zdmuser/zdminstall; export ZDM_INSTALL_LOC" >> ~/.bashrc ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 119
  96. 4. ZDMソフトウェアのインストール • ZDMバイナリを解凍しzdminstall.shを実行して、ZDMソフトウェアをインストールする ZDMサービスホストの構築 [zdmuser@zdmhost ~]$ source ~/.bashrc [zdmuser@zdmhost

    ~]$ cd /home/zdmuser/zdminstall/ [zdmuser@zdmhost zdminstall]$ unzip zdm.zip [zdmuser@zdmhost zdminstall]$ cd zdm [zdmuser@zdmhost zdm]$ ./zdminstall.sh setup oraclehome=$ZDM_HOME oraclebase=$ZDM_BASE ziploc=./zdm_home.zip -zdm ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 120
  97. 4. ZDMソフトウェアのインストール • ZDMを起動してステータスを確認する ZDMサービスホストの構築 [zdmuser@zdmhost zdm]$ $ZDM_HOME/bin/zdmservice start Return

    code is 0 Server started successfully. [zdmuser@zdmhost zdm]$ $ZDM_HOME/bin/zdmservice status --------------------------------------- Service Status --------------------------------------- Running: true Tranferport: Conn String: jdbc:mysql://localhost:8897/ RMI port: 8895 HTTP port: 8896 Wallet path: /home/zdmuser/zdmbase/crsdata/zdmhost/security ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 121
  98. • 論理オンライン移行の場合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 122
  99. 2. GoldenGateサービス・マネージャのパスワード確認 • 作成したインスタンスにSSHで接続する • opcユーザのホームディレクトリを確認する • ogg-credentials.jsonを確認する GoldenGateサービス・マネージャのユーザー名とパスワードを確認できる Oracle

    GoldenGate – Database Migrationsの構築 -bash-4.2$ ls ogg-credentials.json ora21c-21.8.0.0.0.tar oradiag_opc -bash-4.2$ -bash-4.2$ cat ogg-credentials.json {"username": "oggadmin", "credential": "YP0FBCJ%E.aKMili"} -bash-4.2$ GoldenGate Copyright © 2023, Oracle and/or its affiliates 130
  100. 3. GoldenGateサービス・マネージャへの接続 • Oracle GoldenGateサービス・マネージャへ接続確認する • 任意のブラウザ上のアドレス・バーに以下の情報を入力する • https://<ホスト名.ドメイン名>:<ホストのポート番号>/ •

    jsonファイルで確認したユーザー名、パスワードを入力しサインインする ※あくまでプロセスの実行状況やログを確認するためにアクセスしてください 直接プロセスの設定などを変更することはZDMではサポートされていません Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 131
  101. 構築手順概要 1. Oracle Cloud Infrastructureにてターゲット・データベースのインスタンスを作成 • 作成時のリソース情報は下記の通り • Shape:VM.Standard.E4.Flex 4OCPU

    16GB memory • Oracle Database ソフトウェア・エディション:Enterprise Edition High Performance • 使用可能なデータ・ストレージ 2048GB ターゲット・データベースの構築 ターゲットDB Copyright © 2023, Oracle and/or its affiliates 132
  102. Tips ターゲット・データベースの構築時、 ストレージサイズの指定に注意してください。 • 使用可能なデータ・ストレージ • DATA領域のサイズをここで指定します • リカバリ領域の記憶域 •

    RECO領域のサイズはDATA領域で 選択した値によって決定されます • ZDM実行時にはアーカイブREDOログの容量に注 意してください 運用後にもスケールアップは可能ですが、移行時にスト レージが足りなくなってしまうとZDMの実行はエラー終了し てしまいます。余裕を持ったサイズを指定しましょう。 ターゲット・データベースの構築 ターゲットDB Copyright © 2023, Oracle and/or its affiliates 133
  103. 構築手順概要 1. データベースのパラメータ設定 • 強制ロギングを有効にする • ARCHIVELOGモードの設定 • データベースの最小サプリメンタル・ロギングを有効にする •

    初期化パラメータのENABLE_GOLDENGATE_REPLICATIONを有効にする • 初期化パラメータのSTREAMS_POOL_SIZEを2GB以上に設定する 2. GoldenGate管理ユーザの作成 • GoldenGate管理ユーザ(ggadmin)を作成する • ggadminに必要なすべての権限を付与する ソース・データベースの設定 ソースDB Copyright © 2023, Oracle and/or its affiliates 135
  104. 1. GoldenGate管理ユーザの作成(PDB) • GoldenGate管理ユーザ(ggadmin)を作成する • ggadminに必要なすべての権限を付与する 2. データベースのパラメータと権限の設定(CDB$ROOT) • 初期化パラメータのENABLE_GOLDENGATE_REPLICATIONを有効にする

    • Data Pumpに必要なターゲットを準備する 3. タイムゾーン・バージョンの確認 ターゲット・データベースの設定 ターゲットDB Copyright © 2023, Oracle and/or its affiliates 136
  105. 構築手順概要 1. ZDMサービスホストでの設定 • SSH鍵ペアを生成する • /etc/hostsファイルにソース・データベース、ターゲット・データベース、GoldenGate Hubの情報を入力する 2. ソース・データベースでの設定

    • ZDMサービスホストの公開鍵をauthorized_keysに追加する • /etc/hostsファイルにターゲット・データベースの接続情報を追記する 3. ターゲット・データベースでの設定 • ZDMサービスホストの公開鍵をauthorized_keysに追加する • /etc/hostsファイルにソース・データベースの接続情報を追記する 4. ZDMサービスホストからソースおよびターゲット・データベースへの接続確認 5. ソース・データベースとターゲット・データベース間の接続確認 6. GoldenGate用Computeでの設定 7. GoldenGate用Computeからソース・データベースおよびターゲット・データベースへの接続確認 各リソースの疎通設定 Copyright © 2023, Oracle and/or its affiliates 137
  106. 記載例 レスポンス・ファイル 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.sub10281111111.zd mvcn.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.anxhiljrssl65iqc6xgpsosf5ymcsje6mk4ddtkzgk5rfvx237czzzzdij5b 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/admin/o radb/dpdump DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME=PUMP_DIR DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATH=/mnt/FileSystem/pump_di r # OCICLI OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID=ocid1.user.oc1..aaaaa aaac64752xd64ushyxauaacjf42bbbbjzlxng4aaaaaajgeh6aaaaaa OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID=ocid1.tenancy.oc1.. aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4aaaaaaaaambuazc5tkguca OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT=36:f9:a3:a5:d7:2 5:09:1d:yr:0f:62:65:0c:ea:5r:1a OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_PRIVATEKEYFILE=/home/zdmuser /.oci/oci_api_key.pem OCIAUTHENTICATIONDETAILS_REGIONID=ap-tokyo-1 # Other TABLESPACEDETAILS_REMAPTARGET=ZDMTESTPDB RUNCPATREMOTELY=TRUE ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 139
  107. 工程 想定工数 ZDMサービスホストの構築 2h Oracle GoldenGate – Database Migrationsの構築 1h

    ターゲット・データベースの構築 1h ソース・データベースの設定 4h ターゲット・データベースの設定 4h 各リソースの疎通設定 8h レスポンスファイルの作成 16h 合計 36h 環境構築全体における想定工数 Copyright © 2023, Oracle and/or its affiliates 140
  108. • 移行前にZDMの評価コマンドを実行する • 移行コマンドであるzdmcliのmigrate databaseコマンドに –eval のオプションを付与することで移行前の評価を実施可能 • 移行コマンド実行時にも評価は実施されるがオプションを付与することで評価フェーズのみ実行可能となる •

    コマンドの中で作成したレスポンス・ファイルの情報を指定して実行 • 実行するとジョブIDが発行される 評価コマンドの実行 $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". ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 142
  109. • 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 ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 143
  110. • query jobコマンドを実行しZDMジョブの実行状況を確認 • 全てのフェーズがCOMPLETEDになったことを確認し移行完了となる 移行ジョブの確認 $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 ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 144
  111. Tips ZDMの検証や本番移行前のテストなどを行う場合、何度か実行に失敗することになるかと思います。 • ジョブの再実行や削除は下記コマンドで実行可能です。 • 再実行 • 削除 • 失敗した後に、新たなジョブを発行する前に不要になったジョブは削除してください。

    エラー内容によっては新たに作成したデータベース・リンク、ダンプ・ファイル、ターゲット側のスキーマなど がジョブによって削除されないこともありますので、新たなジョブの発行の前に改めて確認してください。 特にデータベース・リンク名やスキーマが重複するとジョブの失敗やimpdpのスキップが発生しますので注意してください。 移行ジョブの確認 ZDMサービスホスト $ZDM_HOME/bin/zdmcli resume job -jobid 7 $ZDM_HOME/bin/zdmcli abort job -jobid 7 Copyright © 2023, Oracle and/or its affiliates 145
  112. 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 実行結果 • -evalにて実行される内容と同じフェーズ • 各リソースの評価を実施 • 移行前の事前作業フェーズ • Data Pump関連の事前作業、 GoldenGateのExtractプロセス生成、ハートビート表の作 成などを実施 実行時間 0時間01分12秒 実行時間 0時間02分48秒 Copyright © 2023, Oracle and/or its affiliates 146
  113. 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 移行コマンドのフェーズ • Data Pumpによる初期移行フェーズ • エクスポート、ダンプ・ファイルの移動、 インポートなどを実施 • GoldenGateによるデータ連携フェーズ • Replicatプロセスやチェックポイント表などを 生成し、初期移行データからの差分同期を実施 • Replicatによるデータ同期の完了をZDMが判断し Extract、Replicatプロセスを停止する (もしくはジョブを一時停止しデータ同期を手動で確認し、 同期完了後にジョブを再起動する) • 本検証では簡単にデータ連携の確認のみ行なった 実際の移行時にはここでデータ追いつきのための稼働時間 やダウンタイムが発生することが想定される 実行時間 5時間43分12秒 実行時間 0時間02分32秒 Copyright © 2023, Oracle and/or its affiliates 147
  114. 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 移行コマンドのフェーズ • 最終処理フェーズ • ZDMが自動生成したGoldenGateプロセスや オブジェクトの削除を実施 実行時間 0時間03分32秒 全工程の実行時間 5時間53分16秒 Copyright © 2023, Oracle and/or its affiliates 148
  115. • ZDMによって自動実行される初期移行の実行時間 Data Pumpによる初期移行時の実行結果 工程 実行時間 expdp 55分04秒 ダンプファイルコピー (Source

    → Object Storage → Target) 47分56秒 impdp 3時間59分36秒 合計 5時間42分36秒 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。 Copyright © 2023, Oracle and/or its affiliates 149
  116. • ソース・データベースのシェイプ情報とZDMレスポンス・ファイルのDATAPUMPパラメータ • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 • メモリー(GB):64

    • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE=8 • CPU使用率 ZDM論理オンライン移行のソース・データベース負荷情報 user: (Avg.) 72.36% user+sys: (Avg.) 81.19% Copyright © 2023, Oracle and/or its affiliates 150
  117. • メモリー使用率 • I/O Write Throughput kB/s , Write IOPS

    ZDM論理オンライン移行のソース・データベース負荷情報 (Avg.) 99.37% (Avg.) 126082.94kB/s (Avg.) 144.16 w/s Copyright © 2023, Oracle and/or its affiliates 151
  118. • ターゲット・データベースのシェイプ情報とZDMレスポンス・ファイルのDATAPUMPパラメータ • シェイプ:VM.Standard.E4.Flex • OCPU:4 • ネットワーク帯域幅(Gbps):4 • メモリー(GB):64

    • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE=8 • CPU使用率 ZDM論理オンライン移行のソース・データベース負荷情報 user: (Avg.) 25.55% user+sys: (Avg.) 44.21% Copyright © 2023, Oracle and/or its affiliates 152
  119. • メモリー使用率 • I/O Read Throughput kB/s , Read IOPS

    ZDM論理オンライン移行のソース・データベース負荷情報 (Avg.) 99.26% (Avg.) 43280.68kB/s (Avg.) 51.71 r/s Copyright © 2023, Oracle and/or its affiliates 153
  120. 処理時間 Data Pump(圧縮あり)とZDM論理オンライン移行の結果比較 処理 Data Pump(圧縮あり) ZDM論理オンライン expdp 1時間3秒 55分4秒

    scp 37分 47分56秒 impdp 3時間53分28秒 3時間59分36秒 合計 5時間30分31秒 5時間42分36秒 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。 Copyright © 2023, Oracle and/or its affiliates 154
  121. 負荷情報 以下の表に各ツールのExportとImport実行時の負荷情報をまとめています Data Pump(圧縮あり)とZDM論理オンライン移行の結果比較 メトリック DP圧縮あり/Export DP圧縮あり/Import ZDM /Export ZDM

    /Import CPU使用率(user) 75.59% 28.2% 72.36% 25.55% CPU使用率(user+sys) 82.81% 47.06% 81.05% 44.07% メモリー使用率 98.02% 96.72% 99.37% 98.26% I/O Write Throughput kB/s 92853.51kB/s - 126082.94kB/s - Write IOPS 103.57 - 144.16 - I/O Read Throughput kB/s - 44386.68kB/s - 43280.68kB/s Read IOPS - 58.38 - 51.71 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。 Copyright © 2023, Oracle and/or its affiliates 155
  122. 考察 • Data PumpとZDM論理オンライン移行で実行される初期移行を比較した場合、 実行時間や負荷情報に変化はなし • ただし、ZDMの現在のバージョンでは圧縮アルゴリズムや圧縮有無を指定することはできない 今後のバージョンで変更可能なよう機能追加される予定 • ZDMでは全てのData

    Pumpパラメータを変更できるわけではない 事前に変更可能なパラメータをドキュメントで確認すること Data Pump(圧縮あり)とZDM論理オンライン移行の結果比較 Copyright © 2023, Oracle and/or its affiliates 156
  123. 各方式の違い Data Pump(圧縮あり) • Data Pumpで利用可能な 全てのパラメータを調整可能なため柔軟性が高い • Oracle Databaseの機能のみで移行可能

    ZDM論理オンライン • レスポンス・ファイル内で指定可能な Data Pumpパラメータの事前確認が必要 • エクスポートの実行、ダンプファイルの転送、インポート の実行がすべて自動(コマンド1つで済む) • 自動実行のため各工程における待ち時間がない • ZDMサーバやソフトウェアが別途必要 • 検証コマンドを活用し オブジェクトの互換性確認が可能 • GoldenGateを利用したダウンタイムの少ない 移行が可能 Data Pump(圧縮あり)とZDM論理オンライン移行の結果比較 Copyright © 2023, Oracle and/or its affiliates 157
  124. ZDM論理オンライン • レスポンス・ファイル内で指定可能な Data Pumpパラメータの事前確認が必要 • エクスポートの実行、ダンプファイルの転送、インポート の実行がすべて自動(コマンド1つで済む) • 自動実行のため各工程における待ち時間がない

    • ZDMサーバやソフトウェアが別途必要 • 検証コマンドを活用し オブジェクトの互換性確認が可能 • GoldenGateを利用したダウンタイムの少ない 移行が可能 複数のデータベースを ダウンタイム少なく自動移行したいユーザ向け 各方式の違い Data Pump(圧縮あり) • Data Pumpで利用可能な 全てのパラメータを調整可能なため柔軟性が高い • Oracle Databaseの機能のみで移行可能 Data Pump(圧縮あり)とZDM論理オンライン移行の結果比較 少数のデータベースを カスタマイズして移行したいユーザ向け Copyright © 2023, Oracle and/or its affiliates 158
  125. • インストールや実行コマンドの難易度は低い • 手動で行う場合と比べてOS、DB関連の操作はかなり楽になる • インストール、環境セットアップの工程は多いため工数はそれなりにかかる • レスポンスファイルの指定が重要 • 事前にドキュメントを確認し、必須パラメータや指定可能なパラメータについて確認しておくと良い

    • GoldenGateのプロセスはZDMによって自動生成され変更はできない • レスポンス・ファイル内で設定可能なGoldenGateの設定はExtract、Replicatのパラレル度、DDLレプリケーション の有無など一部の設定に限られる • その他のパラメータを変更することはできないが、今後の機能追加に期待 • 実際の移行時にはアプリケーションの特性に応じてGoldenGateのパフォーマンスを確認する必要がある 本検証では移行中にワークロードを流しておらず、簡単なデータ連携の確認のみを行った 検証全体の考察とわかったこと Copyright © 2023, Oracle and/or its affiliates 159
  126. フルマネージド型、Oracle Cloud へのデータベース移行サービス ◼ 概要 • データベースをOracle Cloudにスムーズに移行できるようにする サービス •

    いくつかの簡単なステップで、移行元データベースに接続し、初期 同期から、オンラインレプリケーションを開始、ダウンタイムの少ない カットオーバーを実現 • データベース移行開始から6か月間は無償 ◼ 主な特徴 • オフライン/オンラインでの論理的移行 • スキーマ/メタデータの移行 • エンタープライズ向けの強力なオラクル・ツール(Zero Downtime Migration、GoldenGate、Data Pump)をベースとしたサービス Oracle Cloud Infrastructure – Database Migration Copyright © 2023, Oracle and/or its affiliates 161
  127. ユースケース Oracle Cloud Infrastructure – Database Migration サポートされている移行ユースケース オンプレミスから OCI

    環境へ 3rd Party Cloud から OCI 環境へ Oracle Legacy Cloud から OCI 環境へ OCI 環境 から OCI 環境へ サポートされているネットワーク接続イメージ Agentを用いたFirewall越しの オフライン移行 FastConnect/VPN を使用した オフライン移行 FastConnect/VPN を使用した オンライン移行 Copyright © 2023, Oracle and/or its affiliates 162
  128. 提供される2つの移行方式 • OCI Database Migration(クラウド側)から、ソースデータ ベース環境へのオンライン接続(SQL*Net接続)が必要 • 初期ロードはData Pumpにより実行される。一旦Object Storageに出力(Export)してロードする方式か、ネットワーク

    リンクで直接ロードする方式のどちらかを選択可能 • 差分同期はクラウド側でOracle GoldenGateが構成された GoldenGate Hubによって実行される • アプリケーションをオンライン移行中にクラウド側へ切り替え、 OCI Database Migration を終了することで移行が完了 ※双方向連携は未サポートのため切り戻し構成はサポートされ ない • OCI Database Migration(クラウド側)から、ソースデータ ベース環境へのオンライン接続が出来ないケースで使用 • Database Migration Agentをソース側に配置して、Agent が仲介する形で移行を実行 • Agentは、ソースデータベースとは別のサーバーにインストール することが可能 • AgentがサポートするOSはOracle Linux 7(Linux-x86- 64) 以降 • オフライン移行中は、ソースデータベースへのアクセス(アプリ ケーションからの接続)を停止する必要がある Oracle Cloud Infrastructure – Database Migration オンライン移行 オフライン移行 Copyright © 2023, Oracle and/or its affiliates 163
  129. サポートされるソース/ターゲットデータベースについて(2022年12月現在) • Oracle Database 11g Release 2 (11.2.0.4) • Oracle

    Database 12c Release 1 (12.1.0.2) • Oracle Database 12c Release 2 (12.2.0.1) • Oracle Database 18c • Oracle Database 19c • Oracle Database 21c • 上記以降のリリース サポートされているソース環境 • Oracle Cloud Infrastructure共同管理(co-managed )データ ベース、またはオンプレミス環境 • Amazon Web Services RDS Oracle Database (オフライン移行と オンライン移行の両方) ※オンライン移行の場合non-CDBのみサポート • Linux-x86-64、IBM AIX (オフライン・モードとオンライン・モードの両 方)、およびOracle Solaris (オフライン・モードとオンライン・モードの両 方) • 共有ExadataインフラストラクチャでのOracle Autonomous Database • 専用Exadataインフラストラクチャを使用したOracle Autonomous Database • Oracle Cloud Infrastructure共同管理Oracle Base Database サービス(Oracle Base Database (VM、BM)およびOracle Public Cloud上のExadata) ノート • ターゲットの共同管理(co-managed)データベースは、マルチテナ ント・コンテナ・データベース(CDB)のプラガブル・データベース(PDB)、ま たは従来の非CDBのOracleデータベースのいずれか Oracle Cloud Infrastructure – Database Migration サポート対象のソースデータベース サポート対象のターゲットデータベース Copyright © 2023, Oracle and/or its affiliates 164
  130. ap-osaka-1 ap-tokyo-1 AD1 検証環境構成図 AD1 VCN(ソース) : peeringVCN_Kix Public (10.5.0.0/24)

    Private (10.5.1.0/24) VCN(ターゲット) : peeringVCN Private (10.0.1.0/24) Internet Internet GW DRG DRG Remote Peering 踏み台サーバ ターゲットDB ソースDBサーバ 10.5.1.124 host-10-5-1-124 10.0.1.40 maruyama2 DB0309 OGGマケプレ 10.0.1.213 ogg21cora2 Database Migration OCI Tenancy Cust Tenancy Oracle Services Network Object Storage SG-1 File Storage File Storage 10.5.0.140 host-10-5-0-140 138.2.58.97 OCI Tenancy Oracle Services Network Resource Manager File Storage Mount Target File Storage Mount Target Block Storage Copyright © 2023, Oracle and/or its affiliates 166
  131. ソースデータベース側での初期ロードデータをエクスポート “Migration”の開始 [初期ロードデータのエクスポート] ソース側 アプリケーション ターゲット側 アプリケーション Object Store GoldenGate

    Base Database ソース データベース ソース環境 Oracle Cloud Infrastructure Data Pumpによる エクスポート FastConnect VPN Database Copyright © 2023, Oracle and/or its affiliates 172
  132. エクスポートとした初期ロードデータをアップロード “Migration”の開始 [初期ロードデータのアップロード] ソース側 アプリケーション ターゲット側 アプリケーション Object Store GoldenGate

    Base Database ソース データベース ソース環境 Oracle Cloud Infrastructure Data Pumpによる エクスポート FastConnect VPN Database Copyright © 2023, Oracle and/or its affiliates 173
  133. 初期ロードデータをターゲットデータベースにインポート “Migration”の開始 [初期ロードデータのインポート] ソース側 アプリケーション ターゲット側 アプリケーション Object Store GoldenGate

    Base Database ソース データベース ソース環境 Oracle Cloud Infrastructure Data Pumpによる インポート FastConnect VPN Database Copyright © 2023, Oracle and/or its affiliates 174
  134. ユーザーがアプリを切り替えるまでGoldenGateにより差分データをレプリケーション “Migration”の開始 [差分レプリケーション] ソース側 アプリケーション ターゲット側 アプリケーション Object Store GoldenGate

    Base Database ソース データベース ソース環境 Oracle Cloud Infrastructure トランザクションの レプリケーション FastConnect VPN Database Copyright © 2023, Oracle and/or its affiliates 175
  135. 完全に差分トランザクションが伝搬されてからターゲット側アプリをアクティブ化 “Migration”の開始 [切り替え] ソース側 アプリケーション ターゲット側 アプリケーション Object Store GoldenGate

    Base Database ソース データベース ソース環境 Oracle Cloud Infrastructure FastConnect VPN アプリケーションの 停止 アプリケーションの アクティブ化 切り替え Database Copyright © 2023, Oracle and/or its affiliates 176
  136. DMS論理オンライン移行フェーズごとの本検証における実行時間 実行結果 フェーズ DMS論理オンライン Validate 46秒 Prepare 2分16秒 Export Initial

    load 57分32秒 Upload data 38分58秒 Import Initial load 4時間9分 Post initial load 13秒 Prepare replication target 2分25秒 Monitor replication lag 1秒 Switchover 6分23秒 Cleanup 14秒 合計 5時間57分48秒 Copyright © 2023, Oracle and/or its affiliates 178
  137. DMS 実行中のソース/ターゲットデータベースのCPU負荷 ソースDB ターゲットDB Export initial load フェーズ エクスポート時に圧縮している のでCPU負荷高い(圧縮有

    無指定は無い) Upload data フェーズ FSS → Object Storage への ネットワーク転送 Import initial load フェーズ 13:58 くらいまではObject Storage から impdir の FSS へネットワークでダウンロード中 なので負荷低い 13:58から実際のインポート処 理、CPU負荷高くなる Copyright © 2023, Oracle and/or its affiliates 179
  138. 処理時間 ZDM論理オンライン移行、DMS論理オンラインの結果比較 処理 ZDM論理オンライン DMS論理オンライン expdp 55分4秒 57分32秒 scp 47分56秒

    38分58秒 impdp 3時間59分36秒 4時間9分 合計 5時間42分36秒 5時間45分30秒 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。 Copyright © 2023, Oracle and/or its affiliates 180
  139. 負荷情報 以下の表に各ツールのExportとImport実行時の負荷情報をまとめています ZDM論理オンライン移行、DMS論理オンラインの結果比較 メトリック ZDM /Export ZDM /Import DMS /Export

    DMS /Import CPU使用率(user) 72.36% 25.55% 87.05% 25.09 % CPU使用率(user+sys) 81.05% 44.07% 96.34% 30.89 % メモリー使用率 99.37% 98.26% 92.08% 97.78 % I/O Write Throughput kB/s 126082.94kB/s - 12296.68 KB/s - Write IOPS 144.16 - 111.59 - I/O Read Throughput kB/s - 43280.68kB/s - - Read IOPS - 51.71 - - ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。 Copyright © 2023, Oracle and/or its affiliates 181
  140. 考察 • ZDM論理オンライン移行とDMS論理オンラインを比較した場合、実行時間や負荷情報に変化はなし • 実行結果に差異はないが、実行工程には差異あり • ZDMで必要だったインストール作業やコマンド実行は必要ない • DMSの場合レスポンス・ファイルは変更できず、GUIで一部のパラメータを変更可能 •

    移行するオブジェクトの指定 • expdp/impdpのパラレル度 • BIGFILEテーブルスペースの使用有無 など.. • ZDMサービス・ホストのOSにアクセスすることはできない(ユーザからは見えない) • ログはGUIでダウンロードして確認する • 移行に失敗した時の切り分けをユーザ自身で行うのが難しい ZDM論理オンライン移行、DMS論理オンラインの結果比較 Copyright © 2023, Oracle and/or its affiliates 182
  141. 各方式の違い ZDM論理オンライン移行 • インストール作業やコマンド実行の難易度は低いが、 それなりに工数はかかる • レスポンス・ファイルを使ってData Pumpや GoldenGateの一部のパラメータを変更可能 •

    全てのリソースにアクセス可能なため、移行時に問題 があった時の切り分けを行いやすい DMS論理オンライン • GUIで移行可能なため、 ZDMよりも難易度低く移行可能 • Data PumpやGoldenGateのパラメータで、ZDMで 指定可能なもののうち、一部のみ指定可能 • ZDMサービス・ホストにはアクセスできないため、 問題発生時の切り分けが難しい ZDM論理オンライン移行、DMS論理オンラインの結果比較 Copyright © 2023, Oracle and/or its affiliates 183
  142. 各方式の違い ZDM論理オンライン移行 • インストール作業やコマンド実行の難易度は低いが、 それなりに工数はかかる • レスポンス・ファイルを使ってData Pumpや GoldenGateの一部のパラメータを変更可能 •

    全てのリソースにアクセス可能なため、移行時に問題 があった時の切り分けを行いやすい DMS論理オンライン • GUIで移行可能なため、 ZDMよりも難易度低く移行可能 • Data pumpやGoldenGateのパラメータで、ZDMで 指定可能なもののうち、さらに一部のみ指定可能 • ZDMサービス・ホストにはアクセスできないため、 問題発生時の切り分けが難しい ZDM論理オンライン移行、DMS論理オンラインの結果比較 データベースを カスタマイズして自動移行したいユーザ向け データベースを シンプルに自動移行したいユーザ向け Copyright © 2023, Oracle and/or its affiliates 184
  143. • ZDMと比べてインストール工程が必要なくなるため、より簡単に移行可能 • ZDMと比べて難易度は下がるが問題発生時の切り分けは難しい • GoldenGateのプロセスはDMSによって自動生成され変更はできない • DMSで設定可能なGoldenGateの設定はExtract、Replicatのパラレル度など一部の設定に限られる • その他のパラメータを変更することはできないが、今後の機能追加に期待

    • 実際の移行時にはアプリケーションの特性に応じてGoldenGateのパフォーマンスを確認する必要がある 本検証では移行中にワークロードを流しておらず、簡単なデータ連携の確認のみを行った DMS検証の考察とわかったこと Copyright © 2023, Oracle and/or its affiliates 185
  144. 作業時間、想定ダウンタイム • 以下の表に各ツールの移行検証にかかった作業時間と想定ダウンタイムをまとめています • 想定ダウンタイムはソースデータベースへの更新を止めてから、ターゲットデータベースへの更新が可能になるまで の時間を示しています • 実際の移行時にはデータの確認作業やアプリケーションの切り替え作業などを行うことでより多くのダウンタイム が発生することが想定されます •

    ZDM、DMSの想定ダウンタイムは移行中のソースデータベースにおけるREDO生成量によって変化します 全体比較 移行方法 Data Pump (圧縮なし) Full Transportable Export/Import Zero Downtime Migration Database Migration Service 作業時間 15時間 9時間20分 41時間42分 21時間 想定ダウンタイム 6時間30分 1時間40分45秒 5分 5分 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。 Copyright © 2023, Oracle and/or its affiliates 187
  145. 負荷情報 各ツールのExportとImport実行時の負荷情報は以下の通りです 全体比較 メトリック DP圧縮 なし /Export DP圧縮 あり /Export

    DP圧縮 なし /Import DP圧縮 あり /Import FTEX /Export FTEX /Import ZDM /Export ZDM /Import DMS /Export DMS /Import CPU使用率(user) 6.77% 75.59% 25.91% 28.2% 7.25% 11.5% 72.05% 25.27% 87.05% 25.09 % CPU使用率 (user+sys) 14.07% 82.81% 47.6% 47.06% 8.25% 13.75% 81.05% 44.07% 96.34% 30.89 % メモリー使用率 99.35% 98.02% 97.63% 96.72% 44.61% 96.89% 99.37% 98.31% 92.08% 97.78 % I/O Write Throughput kB/s 296308. 48kB/s 92853.51 kB/s - - 121kB/s - 126078.9 7kB/s - 12296.68 KB/s - Write IOPS 366.45 103.57 - - 6.25 - 144.16 - 111.59 - I/O Read Throughput kB/s - - 43980.16 kB/s 44386.6 8kB/s - 117.25kB /s - 43176.5k B/s 255274.1 KB/s - Read IOPS - - 59.23 58.38 - 6.00 - 51.32% 374.35 - ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。 Copyright © 2023, Oracle and/or its affiliates 188
  146. 各方式の特徴と考察 Data Pump • シンプルに移行可能 • 複数のパラメータを 使って用途にあった 移行が可能 •

    ダウンタイムは長め Full Transportable Export/Import • ソース/ターゲットデータ ベースにかかる負荷が 少ない • ダウンタイムは発生する が比較的少ない • 事前設定や確認事項 が多い Zero Downtime Migration • ダウンタイム極小 • 全ての処理が自動実行 されるため複数のデータ ベースを移行する場合に 効果が大きい • 一定の範囲でジョブの カスタマイズが可能 Database Migration Service • ダウンタイム極小 • 全ての処理が自動実行 されるため複数のデータ ベースを移行する場合に 効果が大きい • カスタマイズは最小限 まとめ ダウンタイム極小で カスタマイズして 自動移行 ダウンタイム極小で シンプルに自動移行 小規模なデータベー スをシンプルかつ 柔軟に移行 低負荷で ダウンタイム 少なく移行 Copyright © 2023, Oracle and/or its affiliates 190