Slide 1

Slide 1 text

Oracle Databaseクラウド移行ツールさわってみた Oracle Database Technology Night #69 2023年7月27日 日本オラクル株式会社 COE本部 データベース・ソリューション部

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Copyright © 2023, Oracle and/or its affiliates 3 検証背景

Slide 4

Slide 4 text

主な移行方式一覧 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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

移行例の検証 過去の移行検証について 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 前提条件がそろっておらず方式が比較しにくい

Slide 7

Slide 7 text

• 目的: • 検証にあたり前提条件をどこに置くべきかの決定と、検証すべき方式の優先順位付けの参考とするため • 実施条件: • 回答者数は50~60名程度 • 回答対象者は社内のエンジニア、コンサルタント、営業など部門を限定としない • 複数回答可としているため各項目に対する得票数の合計が分母となる 社内アンケートの内容 Copyright © 2023, Oracle and/or its affiliates 7

Slide 8

Slide 8 text

移行方式について これまでの案件対応の中で顧客が選択した、あるいは興味をもった移行方式を教えてください。 複数回答いただいても構いません。 この中に回答がない場合はこちらのスレッド内で返信していただけると嬉しいです。 Q1 Data Pump, 28% GoldenGate, 23% PDB Clone, 11% TTS, 10% RMAN, 8% ZDM, 6% PDB Unplug/Plug, 5% FULL TTS, 3% DMS, 3% RMAN TTS, 2% Data Pump GoldenGate PDB Clone TTS RMAN ZDM PDB Unplug/Plug FULL TTS DMS RMAN TTS Copyright © 2023, Oracle and/or its affiliates 8

Slide 9

Slide 9 text

移行対象となるソースDBのバージョン これまでの案件対応の中で移行対象となったソースデータベースのバージョンについて教えてください。 シンプルに移行案件以外でも担当顧客が今使っているDBバージョンでも構いません。 Q2 11.2.0.4, 39% 12.1.0.2, 26% 12.2.0.1, 14% 11.2.0.3以下, 14% 19, 5% 18, 4% 11.2.0.4 12.1.0.2 12.2.0.1 11.2.0.3以下 19 18 Copyright © 2023, Oracle and/or its affiliates 9

Slide 10

Slide 10 text

移行対象となるソースDBの表領域暗号化有無 これまでの案件対応の中で移行対象となったソースデータベースの表領域暗号化有無について 教えてください。 シンプルに移行案件以外でも顧客が今使っているDBでの情報でも構いません。 Q3 暗号化ナシ, 73% 暗号化アリ, 27% 暗号化ナシ 暗号化アリ Copyright © 2023, Oracle and/or its affiliates 10

Slide 11

Slide 11 text

移行対象となるソースDBのエディション これまでの案件対応の中で移行対象となったソースデータベースのエディションについて 教えてください。 シンプルに移行案件以外でも顧客が今使っているDBでの情報でも構いません。 Q4 EE, 75% SE2, 25% EE SE2 Copyright © 2023, Oracle and/or its affiliates 11

Slide 12

Slide 12 text

移行対象となるソースDBの構成 これまでの案件対応の中で移行対象となったソースデータベースの構成について教えてください。 シンプルに移行案件以外でも顧客が今使っているDBでの情報でも構いません。 Q5 non-CDB, 69% CDBシングルテナント, 17% CDBマルチテナント, 14% non-CDB CDBシングルテナント CDBマルチテナント Copyright © 2023, Oracle and/or its affiliates 12

Slide 13

Slide 13 text

移行対象となるソースDBのデータ量 これまでの案件対応の中で移行対象となったソースデータベースのデータ量について教えてください。 シンプルに移行案件以外でも顧客が今使っているDBでの情報でも構いません。ざっくりで構いません。 Q6 1TB~, 49% 501GB~1TB, 28% 1~500GB, 23% 1TB~ 501GB~1TB 1~500GB Copyright © 2023, Oracle and/or its affiliates 13

Slide 14

Slide 14 text

• 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

Slide 15

Slide 15 text

• 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

Slide 16

Slide 16 text

Copyright © 2023, Oracle and/or its affiliates 16 検証概要

Slide 17

Slide 17 text

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とし、 東京リージョンへの移行時における想定工数やダウンタイムを比較する 検証概要

Slide 18

Slide 18 text

構成 環境 バージョン エディション 表領域 データ量 暗号化 ソース 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を使用する

Slide 19

Slide 19 text

スペック 検証環境 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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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スキーマを移行対象オブジェクトとします

Slide 22

Slide 22 text

Copyright © 2023, Oracle and/or its affiliates 22 Data Pumpの検証

Slide 23

Slide 23 text

Data Pump手順 Copyright © 2023, Oracle and/or its affiliates 23

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

構成図 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

Slide 26

Slide 26 text

移行の流れ Data Pump手順 Copyright © 2023, Oracle and/or its affiliates 26 expdp impdp scp .dmpファイル .dmpファイル ソースDB ターゲットDB

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

ダンプファイル用のディレクトリの準備 ダンプ・ファイルを保管するディレクトリを作成し、ディレクトリ・パスをディレクトリ・オブジェクトとして指定します ディレクトリ名とディレクトリの配置は任意ですが、ディレクトリにダンプファイルを保管できる十分な領域を確保してください 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'; 確認コマンド:

Slide 30

Slide 30 text

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で実行するコマンド:

Slide 31

Slide 31 text

初期化パラメータ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 実行結果:

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

ディクショナリ統計の収集 エクスポートを実行する前にディクショナリ統計を収集して最新の統計情報を維持します 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で実行するコマンド:

Slide 34

Slide 34 text

ダンプファイル・サイズの見積もり 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パラメータのモードについて

Slide 35

Slide 35 text

ダンプファイル・サイズの見積もり 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モードの方が正確であることが確認できました

Slide 36

Slide 36 text

パラメータ・ファイルの作成 エクスポート(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):

Slide 37

Slide 37 text

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 実行コマンド: 実行結果:

Slide 38

Slide 38 text

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 圧縮ありの実行結果:

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

パラメータ・ファイルの作成 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):

Slide 43

Slide 43 text

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 実行コマンド: 実行結果:

Slide 44

Slide 44 text

移行データの確認 移行データを確認します ソース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):

Slide 45

Slide 45 text

移行データの確認 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):

Slide 46

Slide 46 text

ディクショナリ統計の収集 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で実行するコマンド:

Slide 47

Slide 47 text

Data Pump結果 Copyright © 2023, Oracle and/or its affiliates 47

Slide 48

Slide 48 text

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 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

負荷情報 – 圧縮なし/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%

Slide 51

Slide 51 text

• メモリー使用率 • 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

Slide 52

Slide 52 text

• ターゲット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%

Slide 53

Slide 53 text

• メモリー使用率 • 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

Slide 54

Slide 54 text

負荷情報 – 圧縮あり/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%

Slide 55

Slide 55 text

• メモリー使用率 • 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

Slide 56

Slide 56 text

• ターゲット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%

Slide 57

Slide 57 text

• メモリー使用率 • 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

Slide 58

Slide 58 text

負荷情報 – 比較表 表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. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 59

Slide 59 text

Data Pump Tips Copyright © 2023, Oracle and/or its affiliates 59

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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 実行例:

Slide 62

Slide 62 text

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]$ 実行例:

Slide 63

Slide 63 text

コンパイル・エラー(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

Slide 64

Slide 64 text

コンパイル・エラー(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 エラー内容を確認します

Slide 65

Slide 65 text

コンパイル・エラー(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 エラー内容を確認します

Slide 66

Slide 66 text

コンパイル・エラー(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. エラー内容を確認します

Slide 67

Slide 67 text

Copyright © 2023, Oracle and/or its affiliates 67 Full Transportable Export/Importの検証

Slide 68

Slide 68 text

Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 68

Slide 69

Slide 69 text

全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 69

Slide 70

Slide 70 text

構成図 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

Slide 71

Slide 71 text

移行の流れ Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 71 expdp impdp scp .dmpファイル(メタデータ) + .dbfファイル(表領域のデータ) ソースDB ターゲットDB .dmpファイル(メタデータ) + .dbfファイル(表領域のデータ)

Slide 72

Slide 72 text

全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 72

Slide 73

Slide 73 text

エンディアン形式の確認 ソース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プロシージャを使用して、 転送されるデータファイルをターゲット・プラットフォームの形式に変換する必要があります

Slide 74

Slide 74 text

転送対象の表領域が自己完結型であることの確認 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で実行) • 上記のように表示されるビューが空の場合はすべての転送対象の表領域が自己完結型です • 表が表示される場合は外部に対して参照を持っているため、対象から外すか、管理表領域またはユーザー定義表 領域のいずれかに格納されるように再定義するなどして、解決する必要があります

Slide 75

Slide 75 text

ダンプファイルと表領域のデータ・ファイル用のディレクトリの準備 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環境に表領域のデータファイル用のディレクトリを作成する

Slide 76

Slide 76 text

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」の項目に記述します

Slide 77

Slide 77 text

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で実行するコマンド:

Slide 78

Slide 78 text

ターゲットDB環境の表領域名の変更 ターゲットDB環境に移行対象の表領域と同じ名称の表領域が存在する場合、エラーが発生する 名称を変更するかimpdpコマンドでREMAP_TABLESPACEパラメータを使用して新たな表領域を作成する必要があり ます 本資料では、ターゲットDBの既存のUSERS表領域の名称をUSERS_OLDに変更する方法を取ります Full Transportable Export/Import手順 – 事前設定 Copyright © 2023, Oracle and/or its affiliates 78 alter tablespace users rename to users_old; ターゲットDBで実行するコマンド: $ impdp dpuser/password@pdb parfile=ftimp.par ORA-29349: tablespace 'USERS' already exists 同じ名称の表領域が存在する場合に出力されるエラー:

Slide 79

Slide 79 text

全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 79

Slide 80

Slide 80 text

ディクショナリ統計の収集 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で実行するコマンド:

Slide 81

Slide 81 text

表領域の読取り専用モードへの設定 エクスポート期間中は、転送される表領域を読取り専用モードにする必要があります 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環境に転送されたら、 表領域を読取り/書込みモードに戻すことができます

Slide 82

Slide 82 text

パラメータ・ファイルの作成 エクスポート(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が実行されます

Slide 83

Slide 83 text

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 実行コマンド: 実行結果:

Slide 84

Slide 84 text

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 ダンプファイルが配置されているディレクトリを確認します

Slide 85

Slide 85 text

全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 85

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

全体手順 事前設定 • エンディアン形式の確認 • 転送対象の表領域が自己完 結型であることの確認 • ダンプファイルと表領域のデー タ・ファイル用のディレクトリの 準備 • expdp/impdpコマンド実行 ユーザの作成 • ターゲットDB環境の表領域名 の変更 エクスポート • ディクショナリ統計の収集 • 表領域の読取り専用モードへ の設定 • パラメータ・ファイルの作成 • expdpコマンドの実行 ファイルの転送 • scpを使用したターゲットDBへ のダンプファイルと表領域の データファイルの転送 インポート • パラメータ・ファイルの作成 • impdpコマンドの実行 • 移行データの確認 • ディクショナリ統計の収集 Full Transportable Export/Import手順 Copyright © 2023, Oracle and/or its affiliates 87

Slide 88

Slide 88 text

パラメータ・ファイルの作成 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が実行されます

Slide 89

Slide 89 text

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 実行コマンド: 実行結果:

Slide 90

Slide 90 text

移行データの確認 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):

Slide 91

Slide 91 text

移行データの確認 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):

Slide 92

Slide 92 text

ディクショナリ統計の収集 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で実行するコマンド:

Slide 93

Slide 93 text

Full Transportable Export/Import結果 Copyright © 2023, Oracle and/or its affiliates 93

Slide 94

Slide 94 text

処理時間 各実行コマンドの処理時間を表. 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 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 95

Slide 95 text

各工程の想定作業時間 事前設定からインポート完了までに想定される作業時間を表. 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 ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 96

Slide 96 text

• ソース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%

Slide 97

Slide 97 text

• メモリー使用率 • 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

Slide 98

Slide 98 text

• ターゲット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%

Slide 99

Slide 99 text

• メモリー使用率 • 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

Slide 100

Slide 100 text

負荷情報 – 比較表 表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. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 101

Slide 101 text

Full Transportable Export/Import Tips Copyright © 2023, Oracle and/or its affiliates 101

Slide 102

Slide 102 text

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)のデフォルト表領域を読取り/書込みモードの表領域(※)に変更することで解決できます (※) 必要に応じてダミー表領域を作成してください

Slide 103

Slide 103 text

Data Pumpと Full Transportable Export/Import 結果比較 Copyright © 2023, Oracle and/or its affiliates 103

Slide 104

Slide 104 text

処理時間 表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のデータファイルの転送時間では差がそこまで出ませんでした ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 105

Slide 105 text

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. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 106

Slide 106 text

負荷情報 表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. ※本検証における前提条件に基づく結果であり、その他の環境における実行結果を保証するものではありません。

Slide 107

Slide 107 text

全体結果考察 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

Slide 108

Slide 108 text

Data Pumpと Full Transportable Export/Import まとめ Copyright © 2023, Oracle and/or its affiliates 108

Slide 109

Slide 109 text

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

Slide 110

Slide 110 text

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

Slide 111

Slide 111 text

Zero Downtime Migration (ZDM)の検証 Copyright © 2023, Oracle and/or its affiliates 111

Slide 112

Slide 112 text

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

Slide 113

Slide 113 text

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

Slide 114

Slide 114 text

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

Slide 115

Slide 115 text

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

Slide 116

Slide 116 text

構築手順概要 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

Slide 117

Slide 117 text

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

Slide 118

Slide 118 text

2. ZDMバイナリのダウンロード • 最新のZDMバイナリをダウンロードする https://www.oracle.com/database/technologies/rac/zdm-downloads.html ZDMサービスホストの構築 ZDMサービスホスト Copyright © 2023, Oracle and/or its affiliates 118

Slide 119

Slide 119 text

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

Slide 120

Slide 120 text

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

Slide 121

Slide 121 text

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

Slide 122

Slide 122 text

• 論理オンライン移行の場合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

Slide 123

Slide 123 text

構築手順概要 1. Oracle Cloud Infrastructure MarketplaceからGoldenGate用のインスタンスを作成 2. GoldenGateサービス・マネージャのパスワード確認 3. GoldenGateサービス・マネージャへの接続 Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 123

Slide 124

Slide 124 text

1. Oracle Cloud Infrastructure MarketplaceからGoldenGate用のインスタンスを作成 Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 124

Slide 125

Slide 125 text

1. Oracle Cloud Infrastructure MarketplaceからGoldenGate用のインスタンスを作成 Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 125

Slide 126

Slide 126 text

1. Oracle Cloud Infrastructure MarketplaceからGoldenGate用のインスタンスを作成 Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 126

Slide 127

Slide 127 text

1. Oracle Cloud Infrastructure MarketplaceからGoldenGate用のインスタンスを作成 Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 127

Slide 128

Slide 128 text

1. Oracle Cloud Infrastructure MarketplaceからGoldenGate用のインスタンスを作成 Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 128

Slide 129

Slide 129 text

1. Oracle Cloud Infrastructure MarketplaceからGoldenGate用のインスタンスを作成 Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 129

Slide 130

Slide 130 text

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

Slide 131

Slide 131 text

3. GoldenGateサービス・マネージャへの接続 • Oracle GoldenGateサービス・マネージャへ接続確認する • 任意のブラウザ上のアドレス・バーに以下の情報を入力する • https://<ホスト名.ドメイン名>:<ホストのポート番号>/ • jsonファイルで確認したユーザー名、パスワードを入力しサインインする ※あくまでプロセスの実行状況やログを確認するためにアクセスしてください 直接プロセスの設定などを変更することはZDMではサポートされていません Oracle GoldenGate – Database Migrationsの構築 GoldenGate Copyright © 2023, Oracle and/or its affiliates 131

Slide 132

Slide 132 text

構築手順概要 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

Slide 133

Slide 133 text

Tips ターゲット・データベースの構築時、 ストレージサイズの指定に注意してください。 • 使用可能なデータ・ストレージ • DATA領域のサイズをここで指定します • リカバリ領域の記憶域 • RECO領域のサイズはDATA領域で 選択した値によって決定されます • ZDM実行時にはアーカイブREDOログの容量に注 意してください 運用後にもスケールアップは可能ですが、移行時にスト レージが足りなくなってしまうとZDMの実行はエラー終了し てしまいます。余裕を持ったサイズを指定しましょう。 ターゲット・データベースの構築 ターゲットDB Copyright © 2023, Oracle and/or its affiliates 133

Slide 134

Slide 134 text

Tips ターゲット・データベースの構築時、 文字セットの指定に注意してください。 • ZDM実行の前提条件としてソース・データベースと ターゲット・データベースの文字セットは同一である必 要があります。 • ターゲット・データベースの作成時に文字セットを指定 することができるためソース・データベースに合わせて変 更しておきましょう。 ターゲット・データベースの構築 ターゲットDB Copyright © 2023, Oracle and/or its affiliates 134

Slide 135

Slide 135 text

構築手順概要 1. データベースのパラメータ設定 • 強制ロギングを有効にする • ARCHIVELOGモードの設定 • データベースの最小サプリメンタル・ロギングを有効にする • 初期化パラメータのENABLE_GOLDENGATE_REPLICATIONを有効にする • 初期化パラメータのSTREAMS_POOL_SIZEを2GB以上に設定する 2. GoldenGate管理ユーザの作成 • GoldenGate管理ユーザ(ggadmin)を作成する • ggadminに必要なすべての権限を付与する ソース・データベースの設定 ソースDB Copyright © 2023, Oracle and/or its affiliates 135

Slide 136

Slide 136 text

1. GoldenGate管理ユーザの作成(PDB) • GoldenGate管理ユーザ(ggadmin)を作成する • ggadminに必要なすべての権限を付与する 2. データベースのパラメータと権限の設定(CDB$ROOT) • 初期化パラメータのENABLE_GOLDENGATE_REPLICATIONを有効にする • Data Pumpに必要なターゲットを準備する 3. タイムゾーン・バージョンの確認 ターゲット・データベースの設定 ターゲットDB Copyright © 2023, Oracle and/or its affiliates 136

Slide 137

Slide 137 text

構築手順概要 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

Slide 138

Slide 138 text

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

Slide 139

Slide 139 text

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

Slide 140

Slide 140 text

工程 想定工数 ZDMサービスホストの構築 2h Oracle GoldenGate – Database Migrationsの構築 1h ターゲット・データベースの構築 1h ソース・データベースの設定 4h ターゲット・データベースの設定 4h 各リソースの疎通設定 8h レスポンスファイルの作成 16h 合計 36h 環境構築全体における想定工数 Copyright © 2023, Oracle and/or its affiliates 140

Slide 141

Slide 141 text

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

Slide 142

Slide 142 text

• 移行前に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

Slide 143

Slide 143 text

• 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

Slide 144

Slide 144 text

• 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

Slide 145

Slide 145 text

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

Slide 146

Slide 146 text

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

Slide 147

Slide 147 text

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

Slide 148

Slide 148 text

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

Slide 149

Slide 149 text

• 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

Slide 150

Slide 150 text

• ソース・データベースのシェイプ情報と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

Slide 151

Slide 151 text

• メモリー使用率 • 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

Slide 152

Slide 152 text

• ターゲット・データベースのシェイプ情報と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

Slide 153

Slide 153 text

• メモリー使用率 • 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

Slide 154

Slide 154 text

処理時間 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

Slide 155

Slide 155 text

負荷情報 以下の表に各ツールの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

Slide 156

Slide 156 text

考察 • Data PumpとZDM論理オンライン移行で実行される初期移行を比較した場合、 実行時間や負荷情報に変化はなし • ただし、ZDMの現在のバージョンでは圧縮アルゴリズムや圧縮有無を指定することはできない 今後のバージョンで変更可能なよう機能追加される予定 • ZDMでは全てのData Pumpパラメータを変更できるわけではない 事前に変更可能なパラメータをドキュメントで確認すること Data Pump(圧縮あり)とZDM論理オンライン移行の結果比較 Copyright © 2023, Oracle and/or its affiliates 156

Slide 157

Slide 157 text

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

Slide 158

Slide 158 text

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

Slide 159

Slide 159 text

• インストールや実行コマンドの難易度は低い • 手動で行う場合と比べてOS、DB関連の操作はかなり楽になる • インストール、環境セットアップの工程は多いため工数はそれなりにかかる • レスポンスファイルの指定が重要 • 事前にドキュメントを確認し、必須パラメータや指定可能なパラメータについて確認しておくと良い • GoldenGateのプロセスはZDMによって自動生成され変更はできない • レスポンス・ファイル内で設定可能なGoldenGateの設定はExtract、Replicatのパラレル度、DDLレプリケーション の有無など一部の設定に限られる • その他のパラメータを変更することはできないが、今後の機能追加に期待 • 実際の移行時にはアプリケーションの特性に応じてGoldenGateのパフォーマンスを確認する必要がある 本検証では移行中にワークロードを流しておらず、簡単なデータ連携の確認のみを行った 検証全体の考察とわかったこと Copyright © 2023, Oracle and/or its affiliates 159

Slide 160

Slide 160 text

OCI Database Migration Service (DMS)の検証 Copyright © 2023, Oracle and/or its affiliates 160

Slide 161

Slide 161 text

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

Slide 162

Slide 162 text

ユースケース 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

Slide 163

Slide 163 text

提供される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

Slide 164

Slide 164 text

サポートされるソース/ターゲットデータベースについて(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

Slide 165

Slide 165 text

OCI Database Migration を利用した移行検証 Copyright © 2023, Oracle and/or its affiliates 165

Slide 166

Slide 166 text

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

Slide 167

Slide 167 text

OCI コンソールからDatabase MigrationのMigrationsを選択 Step1 : Migrations の作成 Copyright © 2023, Oracle and/or its affiliates 167

Slide 168

Slide 168 text

それぞれの接続情報を入力 Step2 : ソースおよびターゲットのデータベース接続情報登録 Copyright © 2023, Oracle and/or its affiliates 168

Slide 169

Slide 169 text

移行方式の選択やその他の移行設定を実施 Step3 : “Migration”の作成 Copyright © 2023, Oracle and/or its affiliates 169

Slide 170

Slide 170 text

前提条件や設定、接続性の確認などを実施 Step4 : “Migration”の検証 Copyright © 2023, Oracle and/or its affiliates 170

Slide 171

Slide 171 text

データベースをクラウドに移行するためのジョブの実行 Step5 : “Migration”の開始 Copyright © 2023, Oracle and/or its affiliates 171

Slide 172

Slide 172 text

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

Slide 173

Slide 173 text

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

Slide 174

Slide 174 text

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

Slide 175

Slide 175 text

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

Slide 176

Slide 176 text

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

Slide 177

Slide 177 text

ジョブが完了して全てのステータスが「Completed」になると完了 Step6 : データベース移行の完了 Copyright © 2023, Oracle and/or its affiliates 177

Slide 178

Slide 178 text

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

Slide 179

Slide 179 text

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

Slide 180

Slide 180 text

処理時間 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

Slide 181

Slide 181 text

負荷情報 以下の表に各ツールの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

Slide 182

Slide 182 text

考察 • ZDM論理オンライン移行とDMS論理オンラインを比較した場合、実行時間や負荷情報に変化はなし • 実行結果に差異はないが、実行工程には差異あり • ZDMで必要だったインストール作業やコマンド実行は必要ない • DMSの場合レスポンス・ファイルは変更できず、GUIで一部のパラメータを変更可能 • 移行するオブジェクトの指定 • expdp/impdpのパラレル度 • BIGFILEテーブルスペースの使用有無 など.. • ZDMサービス・ホストのOSにアクセスすることはできない(ユーザからは見えない) • ログはGUIでダウンロードして確認する • 移行に失敗した時の切り分けをユーザ自身で行うのが難しい ZDM論理オンライン移行、DMS論理オンラインの結果比較 Copyright © 2023, Oracle and/or its affiliates 182

Slide 183

Slide 183 text

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

Slide 184

Slide 184 text

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

Slide 185

Slide 185 text

• ZDMと比べてインストール工程が必要なくなるため、より簡単に移行可能 • ZDMと比べて難易度は下がるが問題発生時の切り分けは難しい • GoldenGateのプロセスはDMSによって自動生成され変更はできない • DMSで設定可能なGoldenGateの設定はExtract、Replicatのパラレル度など一部の設定に限られる • その他のパラメータを変更することはできないが、今後の機能追加に期待 • 実際の移行時にはアプリケーションの特性に応じてGoldenGateのパフォーマンスを確認する必要がある 本検証では移行中にワークロードを流しておらず、簡単なデータ連携の確認のみを行った DMS検証の考察とわかったこと Copyright © 2023, Oracle and/or its affiliates 185

Slide 186

Slide 186 text

全体の結果比較 Copyright © 2023, Oracle and/or its affiliates 186

Slide 187

Slide 187 text

作業時間、想定ダウンタイム • 以下の表に各ツールの移行検証にかかった作業時間と想定ダウンタイムをまとめています • 想定ダウンタイムはソースデータベースへの更新を止めてから、ターゲットデータベースへの更新が可能になるまで の時間を示しています • 実際の移行時にはデータの確認作業やアプリケーションの切り替え作業などを行うことでより多くのダウンタイム が発生することが想定されます • 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

Slide 188

Slide 188 text

負荷情報 各ツールの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

Slide 189

Slide 189 text

まとめ Copyright © 2023, Oracle and/or its affiliates 189

Slide 190

Slide 190 text

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

Slide 191

Slide 191 text

No content