オンプレミスの Oracle データベースを Amazon RDS for Oracle に移行する - AWS 規範ガイダンス

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

オンプレミスの Oracle データベースを Amazon RDS for Oracle に移行する

作成者: Baji Shaik (AWS)、Pavan Pusuluri (AWS)

環境:PoC またはパイロット

ソース: データベース: リレーショナル

ターゲット: Amazon RDS for Oracle

R タイプ: リプラットフォーム

ワークロード: ‬Oracle

テクノロジー: 移行、データベース

AWS サービス: Amazon RDS; AWS DMS

[概要]

このパターンでは、オンプレミスの Oracle データベースを Oracle 用の Amazon Relational Database Service (Amazon RDS) に移行する際の手順を説明しています。  移行プロセスの一環として、移行計画を作成し、ソースデータベースに基づいてターゲットデータベースのインフラストラクチャに関する重要な要素を検討します。  ビジネス要件とユースケースに基づいて、次の 2 つの移行オプションから 1 つ選択できます。

  • AWS Database Migration Service (AWS DMS) – AWS DMS を使用すると、データベースを迅速かつセキュアに AWS クラウドに移行することができます。移行中でもソースデータベースが完全に維持され、このデータベースを利用するアプリケーションのダウンタイムは最小限に抑えられます。変更データキャプチャ (CDC) と呼ばれるプロセスを通じて最初の全ロード移行を完了した後に、AWS DMS を使用して進行中の変更をキャプチャするタスクを作成することで、移行時間を短縮できます。詳細については、AWS ドキュメントの「AWS DMS による Oracle から Amazon RDS への移行」を参照してください。

  • ネイティブ Oracle ツール – Oracle や Data Pump Export、Data Pump Import with Oracle for CDC などのネイティブ Oracle GoldenGate ツールを使用してデータベースを移行できます。オリジナルのエクスポートユーティリティや、オリジナルのインポートユーティリティなどの Oracle ネイティブツールを使用して、全ロード時間を短縮することもできます。

前提条件と制限

前提条件

  • アクティブな AWS アカウント

  • オンプレミスの Oracle データベース

  • Amazon RDS Oracle データベース (DB) インスタンス

制限

  • データベースサイズの上限: 64 TB

製品バージョン

  • Oracle バージョン 11g (バージョン 11.2.0.3.v1 以降) および 12.2 および 18c。サポートされているバージョンとエディションの最新のリストについては、AWS ドキュメントの「Amazon RDS for Oracle」を参照してください。サポートされているバージョンの最新リストについては、AWS DMS ドキュメントの「AWS DMS のソースとして Oracle データベースを使用する」を参照してください。

アーキテクチャ

ソーステクノロジースタック

  • オンプレミスの Oracle データベース

ターゲットテクノロジースタック

  • 「Amazon RDS for Oracle」

ソースアーキテクチャとターゲットアーキテクチャ

次の図は、AWS DMS を使用してオンプレミスの Oracle データベースを Amazon RDS for Oracle に移行する方法を示しています。

AWS DMS を使用した移行ワークフロー。

この図表は、次のワークフローを示しています:

  1. 既存のデータベースユーザーを作成または使用し、そのユーザーに必要な AWS DMS アクセス権限を付与し、ARCHIVELOG モードをオンにして、補足のログ記録を設定します。

  2. オンプレミスと AWS ネットワーク間のインターネットゲートウェイを設定します。 

  3. AWS DMS でソースとターゲットのエンドポイント を設定します。

  4. AWS DMS レプリケーションタスクを設定して、ソースデータベースからターゲットデータベースにデータを移行します。

  5. 移行後のアクティビティをターゲットデータベースで実行します。

次の図は、ネイティブ Oracle ツールを使用してオンプレミスの Oracle データベースを Amazon RDS for Oracle に移行する方法を示しています。

ネイティブ Oracle ツールを使用した移行ワークフロー。

この図表は、次のワークフローを示しています:

  1. Oracle Export (exp) および Import (imp) ユーティリティを使用して Oracle データベースユーザーを作成または使用し、Oracle データベースをバックアップするために必要なアクセス権限を付与します。

  2. オンプレミスと AWS ネットワーク間のインターネットゲートウェイを設定します。 

  3. バックアップデータベースを使用するように 踏み台ホストの Oracle クライアントを設定します。

  4. Amazon Simple Storage Service (Amazon S3) バケットにバックアップデータベースをアップロードします。

  5. データベースバックアップを Amazon S3 から Amazon RDS for Oracle データベースに復元します。

  6. Oracle GoldenGate for CDC を設定します。

  7. 移行後のアクティビティをターゲットデータベースで実行します。

ツール

  • AWS Database Migration Service (AWS DMS)」 を使用して、データストアを AWS クラウドへ、またはクラウドセットアップとオンプレミスセットアップの組み合わせの間に移行します。

  • Oracle のネイティブツールは、同種移行の実行に役立ちます。Oracle Data Pump を使用して、ソースデータベースとターゲットデータベース間でデータを移行できます。このパターンでは、Oracle Data Pump を使用して、ソースデータベースからターゲットデータベースへのフルロードを実行します。

  • Oracle GoldenGate は、2 つ以上のデータベース間で論理レプリケーションを実行するのに役立ちます。このパターンでは GoldenGate 、 を使用して Oracle Data Pump を使用して、最初のロード後に差分の変更をレプリケートします。

エピック

タスク説明必要なスキル

プロジェクト文書を作成し、データベースの詳細を記録します。

  1. 移行目標、移行要件、プロジェクトの主な利害関係者、プロジェクトのマイルストーン、プロジェクトの期限、主要メトリクス、移行リスク、リスク軽減計画を文書化します。

  2. RAM、IOPS、CPU など、ソースデータベースに関する重要な情報を文書化します。後にこの情報を使用して、適切なターゲット DB インスタンスを決定します。

  3. ソースデータベースとターゲットデータベースのバージョンを検証します。

DBA

ストレージ要件を特定します。

以下の項目を含むストレージ要件を特定して文書化します。

  1. ソース DB インスタンスに割り当てられたストレージを計算します。

  2. ソース DB インスタンスの過去からの増加メトリクスを収集します。

  3. ターゲット DB インスタンスの将来の増加を予測します。

: 汎用 (gp2) SSD ボリュームでは、1 GB のストレージあたり 3 IOPS が得られます。ソースデータベースの読み取りと書き込み IOPS の合計数を計算してストレージを割り当てます。

DBA、 SysAdmin

コンピューティング要件に基づいて適切なインスタンスタイプを選択してください。 

  1. ターゲット DB インスタンスのコンピューティング要件を決定します。

  2. パフォーマンスの問題を特定します。 

  3. 以下の要因を考慮して、適切なインスタンスタイプを決定してください。

    • ソース DB インスタンスの CPU 使用率

    • ソース DB インスタンスの IOPS (読み取り/書き込み操作)

    • ソース DB iインスタンスのメモリフットプリント

SysAdmin

ネットワークアクセスのセキュリティ要件を特定します。

  1. ソースおよびターゲットのデータベースのネットワークおよびホストアクセスのセキュリティ要件を特定して文書化します。

  2. アプリケーションがデータベースと通信できるように、適切なセキュリティグループを設定します。

DBA、 SysAdmin

アプリケーション移行戦略を特定します。

  1. 移行カットオーバー戦略を決定し、文書化します。

  2. アプリケーションの目標復旧時間 (RTO) と目標復旧時点 (RPO) を決定して文書化し、それに応じてカットオーバーを計画します。

DBA、 SysAdminアプリ所有者

移行リスクを特定します。

データベースを評価し、移行に特有のリスクと軽減策を文書化します。例:

  • ログを記録しないテーブルを特定し、リカバリ時にデータが損失するリスクを強調します。

  • ソースデータベースのユーザーと権限を抽出し、Amazon RDS の権限との競合を明確にします。

  • アラートログに Oracle 固有のエラーや警告がないか確認します。

  • ターゲット DB インスタンスでサポートされている機能とサポートされていない機能を特定します。

  • ターゲット DB バージョンエンジンの廃止された機能を確認してください。

DBA
タスク説明必要なスキル

VPC を作成します。

ターゲットデータベースインスタンス用の新しい Amazon Virtual Private Cloud (Amazon VPC) を作成 します。

SysAdmin

セキュリティグループを作成します。

新しい VPC にセキュリティグループを作成して、DB インスタンスへのインバウンド接続を許可します。

SysAdmin

Amazon RDS for Oracle DB インスタンスを作成します。

新しい VPC とセキュリティグループを使用してターゲットデータベースインスタンスを作成してから、ターゲット DB インスタンスを作成します

SysAdmin
タスク説明必要なスキル

ソースデータベースを準備します。

  1. Data Pump ディレクトリを作成するか、既存のディレクトリを使用します。

  2. 移行ユーザーを作成し、Data Pump 抽出を実行する権限を付与します。

  3. ソースデータベースから SQL スクリプトとしてロール、ユーザー、テーブルスペースを抽出します。

  4. 抽出した Data Pump ダンプをターゲット DB インスタンス data pump ディレクトリに転送します

DBA、 SysAdmin

ターゲットデータベースを準備します。

  1. すべてのデータベースオプション (テキストや Java など) がターゲット Amazon RDS for Oracle DB インスタンスにインストールされているか、有効になっていることを確認します。

  2. Data Pump ディレクトリを作成するか、既存のディレクトリを使用します。

  3. 移行ユーザーを作成し、Data Pump インポートを実行する権限を付与します。

  4. ターゲット DB インスタンスに必要なテーブルスペース、ユーザー、ロールを作成します。 

  5. 転送された Data Pump エクスポートダンプをターゲットデータベースにインポートします。

  6. インポート時またはオブジェクト作成時に除外されたインデックスをすべて作成します。

  7. インポート時に除外された制約をすべて作成します。

  8. 無効なオブジェクトを検証または再コンパイルします。

  9. 無効なインデックスを再構築します。 

  10. ソースデータベースとターゲットデータベースのデータベースオブジェクト数を検証します。

  11. オブジェクト数の間に不一致が見つかった場合は解決します。

DBA、 SysAdmin
タスク説明必要なスキル

データを準備する

  1. ソースデータベースのデータをクリーンアップします。

  2. レプリケーションインスタンスを作成します。

  3. ソースエンドポイントとターゲットエンドポイントを作成します

  4. 移行できるテーブルとオブジェクトの数を特定します。

DBA

データを移行します。

  1. 外部キーの制約とトリガーをターゲットデータベースにドロップします。

  2. ターゲットデータベースにセカンダリインデックスをドロップします。

  3. ソースデータベースからターゲットデータベースへの AWS DMS フルロードタスクの設定を行います。

  4. 外部キーを有効にします。

  5. AWS DMS CDC を有効にして、進行中の変更を複製できるようにします。

  6. トリガーを有効にします。

  7. シーケンスを更新します。

  8. ソースデータとターゲットデータを検証します。

DBA
タスク説明必要なスキル

アプリケーションクライアントを新しいインフラストラクチャに切り替えます。

  1. Oracle へのアプリケーションサービスとクライアント接続をすべて停止します。

  2. AWS DMS タスクを実行します。

  3. ロールバックタスクを設定します (例えば、Amazon RDS データベースからオンプレミスの Oracle データベースに CDC を逆転させる)。

  4. データを検証します。

  5. 新しい Amazon RDS for Oracle DB インスタンスに Amazon Route 53 を設定して、新しいターゲットデータベースでアプリケーションサービスを開始します。

  6. Amazon CloudWatch モニタリングを新しい Amazon RDS for Oracle DB インスタンスに追加します。

DBA、 SysAdminアプリ所有者

ロールバックプランを実装します。

  1. Amazon RDS for Oracle DB インスタンスを指しているすべてのアプリケーションサービスを停止します。

  2. AWS DMS タスクを使用して、変更をソースのオンプレミス Oracle データベースにロールバックします。

  3. オンプレミスの Oracle データベースから Amazon RDS for Oracle データベースで実行されている AWS DMS タスクを停止します。

  4. アプリケーションをソース Oracle データベースで設定します。

  5. ロールバックデプロイが完了していることを確認します。

DBA、アプリ所有者
タスク説明必要なスキル

リソースをクリーンアップします。

AWS DMS レプリケーションインスタンスや S3 バケットなどの一時的な AWS リソースをシャットダウンまたは削除します。

DBA、 SysAdmin

プロジェクト文書を確認します。

移行計画文書と目標を確認し、必要な移行手順がすべて完了したことを確認します。

DBA、 SysAdminアプリ所有者

メトリクスを収集します。

移行が完了するまでにかかった時間、手動タスクとツールベースのタスクとの割合、コストの削減、その他の関連メトリクスなど、移行に関する主要なメトリクスを記録します。

DBA、 SysAdminアプリ所有者

プロジェクトを終了します。

移行プロジェクトを終了し、その労力に関するフィードバックを集めます。

DBA、 SysAdminアプリ所有者

関連リソース

リファレンス

チュートリアルと動画