View a markdown version of this page

移行オプションの詳細 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

移行オプションの詳細

次のセクションでは、前のセクションの図表に対応するオプションの詳細について説明します。

1. オフラインでのバックアップと復元

ネイティブ Db2 バックアップでは、データベース全体をバックアップします。このバックアップは、データベースを任意のホストに再作成 (復元) するために使用できます。

  • オフラインでのバックアップと復元は、データベースをオンプレミスから AWSに移行する最も基本的な方法です。

  • Db2 オンプレミスデータベースは、リトルエンディアンプラットフォーム上にある必要があります。

  • オフラインバックアップを作成し、バックアップイメージを Amazon S3 に転送し、バックアップからデータベースを復元するには、ダウンタイムが必要です。

2. HADR フェイルオーバー

Db2 HADR (高可用性ディザスタリカバリ) は、プライマリデータベースと呼ばれるソースデータベースからスタンバイデータベースと呼ばれるターゲットデータベースにデータ変更をレプリケートすることで、高可用性ソリューションを提供します。HADR は、最大 3 つのリモートスタンバイサーバーをサポートします。

  • HADR フェイルオーバーは、リトルエンディアンプラットフォームで実行される非 DPF インスタンスに最適です。

  • ソースデータベース上のすべてのトランザクションをログに記録する必要があります。

  • HADR は、ログストリーミングによるソースデータベース (プライマリデータベース) からターゲットデータベース (スタンバイデータベース) へのデータ変更のレプリケートをサポートしています。HADR は、プライマリデータベースとスタンバイデータベース間の通信に TCP/IP を使用します。

  • ビジネス検証が完全に終了したら、HADR を停止することなく終了し、オンプレミスの Db2 データベースは廃止できます。

3. トランザクションログの配信によるオンラインでのバックアップと復元

オフラインでのバックアップや復元 (オプション 1) とは異なり、オンラインでのバックアップではソースデータベースのダウンタイムは必要ありません。ソースデータベースのバックアップが完了したら、データベーストランザクションログを使用してターゲットデータベースに変更を適用します。 

  • トランザクションログの配信によりバックアップと復元を使用することは、リトルエンディアンプラットフォーム上の Db2 DPF インスタンスにとって最適です。Db2 DPF データベースのサイズが大きくなる傾向があるため、通常のバックアップや復元 (オプション 1) に対する停止時間は 12 時間を超える可能性があります。HADR は Db2 DPF データベースではサポートされていません。

  • ソースデータベース上のすべてのトランザクションをログに記録する必要があります。

  • トランザクションログの配信によるバックアップと復元を使用して、停止期間を最小限に抑えることができます。

  • ログ配信によるバックアップと復元は、非 DPF インスタンスでも使用できます。ただし、フェイルオーバーによる HADR オプションは、非 DPF インスタンスに実装する方が簡単です。

  • HADR フェイルオーバー (オプション 2) とは異なり、逆同期は自動ではありません。逆同期を手動でセットアップします。

  • ビジネス検証が完全に終了したら、オンプレミスの Db2 データベースを廃止できます。

4. Q レプリケーション

Q レプリケーションは、IBM MQ メッセージキューを使用してソースデータベースとターゲットデータベース間でトランザクションを送信する、ハイボリュームで低レイテンシーのレプリケーションソリューションです。

最も一般的な設定を次の図に示します。

オンプレミスの Db2 が IBM MQ と Site-to-Site VPN を介して EC2 用の Db2 に接続していることを示すアーキテクチャ図。

IBM MQ は Db2 と同じサーバーで実行されます。IBM MQ インスタンスは 2 つあり、1 つはオンプレミスサーバーに、もう一つは Amazon EC2 にあります。キャプチャープログラムは、ソースデータベースで実行されます。このプログラムでは、トランザクションログを読み取り、コミットされた変更 (挿入、更新、削除) をオンプレミスの IBM MQ に送信します。オンプレミスの IBM MQ は、 AWS Site-to-Site VPN を介して Amazon EC2 の IBM MQ にメッセージを送信します。アプライプログラムは、ターゲットデータベースを持つ EC2 インスタンス上で実行されます。まず、テーブルに対して全ロードを実行します。次に、Amazon EC2 の IBM MQ から変更データメッセージを読み取り、ターゲットテーブルに適用します。

  • オンプレミスの Db2 がソースで、Amazon EC2 の Db2 がターゲットです。どちらのデータベースもオンラインです。

  • オンプレミスの Db2 データベースは、任意のプラットフォームファミリーに配置できます。

  • ソースデータベース上のすべてのトランザクションをログに記録する必要があります。

  • IBM MQ は、高性能で可用性が高く、確実なメッセージ配信を提供します。

  • メッセージは、ターゲットデータベースで変更がコミットされると IBM MQ から削除されます。

  • 双方向レプリケーションはフォールバックオプションです。ただし、追加のセットアップが必要です。

  • スキーマの移行が必要です。詳細については、「スキーマの移行」セクションを参照してください。

  • Q レプリケーションには、バージョン 11.5 以降の追加ライセンスが必要です。

  • カットオーバーが成功したら、レプリケーションを停止し、IBM MQ インスタンスを廃止します。必要に応じて、オンプレミスデータベースを廃止することもできます。

5. SQL レプリケーション

SQL レプリケーションは、キャプチャー、アプライ、GUI および CLI インターフェイス、アラートモニターといった主要なコンポーネントで構成されます。

キャプチャープログラムは、ソースデータベースで実行されます。トランザクションログを読み取り、変更されたデータ (CD) テーブルに対するコミットされた変更 (挿入、更新、または削除) を保存します。ソーステーブルごとに 1 つの CD テーブルがあります。

作業単位の Db2 コミットポイントは、作業単位 (UOW) テーブルに保存されます。ユーザーによって指定された時点で、キャプチャープログラムは CD テーブルと UOW テーブルで不要になったデータを削除します。これをプルーニングと呼びます。

アプライプログラムがターゲットデータベースで実行されます。ソースデータベースに接続し、CD テーブルに保存されているデータを取得し、取得した行を 1 つ以上のスピルファイルに保存してから、ターゲットデータベースに適用します。

  • オンプレミスの Db2 データベースは、任意のプラットフォームファミリーに配置できます。

  • ソースデータベース上のすべてのトランザクションをログに記録する必要があります。

  • 各書き込みは (ベーステーブル、CD テーブル、および UOW テーブルで) 複数回実行する必要があるため、ソースデータベースのオーバーヘッドは高いと見なされます。一般的に、書き込みトラフィックが少ないシステムには SQL レプリケーションをお勧めします。

  • 双方向レプリケーションはフォールバックオプションです。ただし、追加のセットアップが必要です。

  • スキーマの移行が必要です。詳細については、「スキーマの移行」セクションを参照してください。

  • Q レプリケーションとは異なり、SQL レプリケーションはすべての Db2 エディションに含まれています。追加のライセンスは必要ありません。

  • カットオーバーが成功したら、レプリケーションを停止し、必要に応じてオンプレミスデータベースを廃止します。

6。 AWS DMS

AWS Database Migration Service (AWS DMS) は、データベースと分析のワークロードを安全に に移動し AWS 、ダウンタイムを最小限に抑え、データ損失をゼロにするのに役立つマネージド移行およびレプリケーションサービスです。

  • AWS DMS レプリケーションインスタンスは、データベースの移行を実行します。

  • AWS DMS ソースエンドポイントとターゲットエンドポイントを使用すると、 AWS DMS インスタンスは移行のためにソースデータベースとターゲットデータベースに接続できます。

  • AWS DMS タスクはソースエンドポイントに接続し、データをターゲットエンドポイントにレプリケートします。

  • データの検証を有効にして、ソースからターゲットにデータが正確に移行されることを確認します。

  • Amazon CloudWatch を使用してログ記録を有効にできます。

7. サードパーティーのレプリケーションツール

Infosphere CDCQlik ReplicatePrecisely Real-Time CDCOracle GoldenGate などのサードパーティーレプリケーションツールは、ターゲットとして Db2 for LUW のデータ移行をサポートできます。

Qlik Replicate では、Db2 for LUW を Open Database Connectivity (ODBC) ターゲットとしてセットアップする必要があります。

8. InfoSphere Optim High Performance Unload とロード

InfoSphere Optim High Performance Unload は Db2 エンジンをバイパスし、物理ファイルから直接データをアンロードします。

  • 通常、Optim High Performance Unload では Db2 EXPORT コマンドよりも数倍速く Db2 データをアンロードできます。データファイルをディスクから直接読み取ることで、Db2 データベースマネージャーをバイパスできます。また、コントロールファイルで複数の SELECT ステートメントまたは複数のファイル形式を指定するときに、Db2 テーブルを複数回スキャンしないようにします。

  • Optim High Performance Unload は、バックアップイメージから Db2 データをアンロードすることもできます。つまり、別のマシンで Optim High Performance Unload を実行し、ソースデータベースサーバーのパフォーマンスへの影響を軽減できます。これは、大きな履歴テーブルまたはテーブルパーティションにとっては非常に便利です。

  • データ出力ファイルは、Db2 EC2 サーバーからアクセス可能な Amazon S3 に転送できます。

  • Db2 ロードは Amazon S3 への直接アクセスをサポートします。例えば、次のコマンドを使用できます。

    db2 load from DB2REMOTE://<storage access alias>//<storage-path>/<file-name> replace into mytable
  • スキーマの移行が必要です。詳細については、「スキーマの移行」セクションを参照してください。

  • InfoSphere Optim High Performance Unload には追加のライセンスが必要です。

9. LOAD FROM CURSOR

LOAD FROM CURSOR は、データをファイルにアンロードすることなく、ターゲット上のテーブルをソースとして使用する Db2 ロードユーティリティオプションです。

  • ターゲットデータベースにフェデレーションリンクを作成し、ソースデータベースにリンクする必要があります。

  • テーブルごとに、オンプレミスのソーステーブルにリンクするニックネームが作成されます。テーブルが多数含まれる場合は、自動化スクリプトを使用してニックネームとロードステートメントを生成することをお勧めします。

  • LOAD FROM CURSOR を使用してステージングストレージをバイパスし、テーブルを異なるストリームに分割して並列的に実行できます。負荷が大きい場合は、ネットワークの輻輳をモニタリングすることをお勧めします。

  • カーソル定義で SELECT ステートメントを操作することで、完全なテーブルを選択したり、ロードする必要のないデータをスキップしたり、範囲ベースのパーティションテーブルを複数のロードステートメント (四半期ごとや毎月など) に分割したりできます。

  • スキーマの移行が必要です。詳細については、「スキーマの移行」セクションを参照してください。

10. db2move

db2move コマンドを EXPORTIMPORT、または LOAD モードで使用すると、Db2 データベース間での多数のテーブルの移動が容易になります。

  • スキーマの移行が必要です。詳細については、「スキーマの移行」セクションを参照してください。

  • db2move コマンドを使用して、データをテーブルからファイルにアンロードし、そのデータを Db2 テーブルにロードできます。これは、db2move ユーティリティがソースデータベース内のすべてのテーブルをダウンロードし、いくつかのコマンドを使用してターゲットデータベースにロードできるため便利です。

  1. LOB を使用してソースデータベース内のすべてのテーブルを <lob-path> にエクスポートするには、次のコマンドを実行します。

    db2move <db-name> export -l /<lob-path>/<lobfile>
  2. ファイルを Amazon S3 に転送し、Db2 EC2 サーバーで取得できます。

  3. すべてのテーブルをターゲットデータベースにロードするには、次のコマンドを実行します。

    db2move <db-name> load -l /<lob-path>/<lobfile>

スキーマの移行

バックアップと復元、HADR のフェイルオーバー、ログ配信によるバックアップと復元 (オプション 1 ~ 3) では、スキーマの移行はデータ移行に含まれます。追加のステップは必要ありません。

論理レプリケーションとビッグエンディアン移行 (オプション 4 ~ 10) では、ターゲットにデータベースとスキーマを手動で作成する必要があります。移行中にソースでスキーマを変更しないことをお勧めします。移行には数日かかることがありますが、実際の停止時間ははるかに短くなります。

ソースサーバーで、以下を実行します。

  1. db2look ユーティリティを使用してデータ定義言語 (DDL) を抽出し、出力を db2look.ddl に保存します。

  2. db2look.ddl を Amazon S3 に転送します。

ターゲットサーバーで、以下を実行します。

  1. Amazon S3 から db2look.ddl を取得します。

  2. 外部キーの制約、検査制約、および CREATE TRIGGER ステートメントを取り除きます。それらを別々のファイルに保存します。db2look 出力ではこれらのステートメントがグループ化されるため、このプロセスは難しくありません。

  3. 外部キー、検査制約、およびトリガーを使用せずにデータベースとスキーマを作成します。

  4. GENERATED ALWAYS が含まれる ID 列を持つテーブルを GENERATED BY DEFAULT に変換します。

  5. 論理レプリケーションオプション 4、5、6、7 の場合は、レプリケーションを開始します。全ロードが完了したら、外部キーの制約と検査制約を再作成できます。ただし、カットオーバー前にトリガーを再作成する必要があります。

  6. オプション 8、9、10 では、データロードが完了した後で外部キー、検査制約、トリガーを再作成します。

  7. ステップ 4 で変更した ID 列を含むテーブルを、GENERATED ALWAYS に戻します。

  8. カットオーバー前に ID 列とシーケンスを再読み込みしました。