翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
オンプレミスの Oracle データベースから Aurora Postgre にデータを移行するSQL
作成者: Michelle Deng (AWS) と Shunan Xiang (AWS)
概要
このパターンは、オンプレミスの Oracle データベースから Amazon Aurora Postgre SQL互換エディションへのデータ移行のガイダンスを提供します。これは、データ操作言語 (DML) アクティビティが高い大きなテーブルを含むマルチテラバイトの Oracle データベースのダウンタイムを最小限に抑えたオンラインデータ移行戦略を対象としています。Oracle Active Data Guard スタンバイデータベースをソースとして使用し、プライマリデータベースからのデータ移行の負荷を軽減します。Oracle プライマリデータベースからスタンバイへのレプリケーションは、ORA-01555 エラーを回避するために、全ロード中に停止できます。
データ型 のプライマリキー (PKs) または外部キー (FKs) のテーブル列はNUMBER、Oracle で整数を保存するのによく使用されます。パフォーマンスを向上させるために、PostgreSQL BIGINTでこれらを INTまたは に変換することをお勧めします。AWS Schema Conversion Tool (AWSSCT) を使用して、PK 列と FK 列のデフォルトのデータ型マッピングを変更できます。(詳細については、AWSブログ記事「Oracle から Postgre にNUMBERデータ型を変換するSQL
このパターンを使用して、オンプレミスの Oracle データベースを Postgre 用の Amazon Relational Database Service (Amazon RDS) に移行するかSQL、Amazon Elastic Compute Cloud (Amazon EC2) でホストされている Oracle データベースを Amazon RDS for PostgreSQL または Aurora Postgre SQL互換に移行することもできます。
前提条件と制限
前提条件
アクティブなAWSアカウント
Active Data Guard スタンバイが構成されたオンプレミス データセンター内の Oracle ソース データベース
AWS オンプレミスデータセンターと AWS クラウド間で設定された Direct Connect
制約事項
Amazon Aurora データベースクラスターは、最大 128 TiB のストレージを作成できます。Amazon RDS for PostgreSQL データベースインスタンスは、最大 64 TiB のストレージで作成できます。最新のストレージ情報については、 AWSドキュメントの「Amazon Aurora ストレージと信頼性」および「Amazon RDS DB インスタンスストレージ」を参照してください。
製品バージョン
AWS DMS は、バージョン 10.2 以降 (バージョン 10.x)、11g、12.2、18c、19c までのすべての Oracle データベースエディションをサポートしています。サポートされているバージョンの最新リストについては、 AWSドキュメントの「 のソースとしての Oracle データベースの使用AWSDMS」を参照してください。
アーキテクチャ
ソーステクノロジースタック
Oracle Active Data Guard スタンバイが構成されたオンプレミスの Oracle データベース
ターゲットテクノロジースタック
Aurora Postgre SQL互換
データ移行アーキテクチャ
![Oracle データベースを Aurora Postgre SQL互換に移行する](images/pattern-img/49f9b03e-6d33-4ac0-94ad-d3e6d02e6d63/images/0038a36b-fb7d-4f2d-8376-8d38290b0736.png)
ツール
AWS DMS - AWS Database Migration Service (AWSDMS) は、複数のソースデータベースとターゲットデータベースをサポートしています。サポートされている Oracle ソースおよびターゲットデータベースのバージョンとエディションのリストについては、 ドキュメントAWSの「 のソースとしての DMS Oracle データベースの使用」を参照してください。 AWS DMSソースデータベースが でサポートされていない場合はAWSDMS、(エピックセクションで) フェーズ 6 でデータを移行するための別の方法を選択する必要があります。重要な注意: これは異種移行であるため、まずデータベースが商用 off-the-shelf (COTS) アプリケーションをサポートしているかどうかを確認する必要があります。アプリケーションが の場合はCOTS、先に進む前にベンダーに相談して Aurora PostgreSQL-Compatible がサポートされていることを確認します。詳細については、 AWSドキュメントのAWSDMS Step-by-Step「移行チュートリアル」を参照してください。
AWS SCT - AWS Schema Conversion Tool (AWSSCT) は、ソースデータベーススキーマとカスタムコードの大部分をターゲットデータベースと互換性のある形式に自動的に変換することで、異種データベースの移行を容易にします。ツールが変換されるカスタムコードには、ビュー、ストアドプロシージャ、関数が含まれます。ツールで自動的に変換されないコードは明確にマークされるので、ユーザーが手動で変換できます。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
ソースとターゲットデータベースのバージョンを検証します。 | DBA | |
AWS SCT および ドライバーをインストールします。 | DBA | |
AWS SCT 前提条件となるユーザーと grants-source データベースを追加および検証します。 | DBA | |
ワークロード用の AWSSCTプロジェクトを作成し、ソースデータベースに接続します。 | DBA | |
評価レポートを生成し、実現可能性を評価します。 | DBA、アプリ所有者 |
タスク | 説明 | 必要なスキル |
---|---|---|
Aurora Postgre SQL互換ターゲットデータベースを作成します。 | DBA | |
ソースデータベースからユーザー、ロール、権限リストを抽出します。 | DBA | |
既存のデータベースユーザーを新しいデータベースユーザーにマッピングします。 | アプリ所有者 | |
ターゲットデータベースにユーザーを作成します。 | DBA | |
前のステップのロールをターゲット Aurora Postgre SQL互換データベースに適用します。 | DBA | |
ソースデータベースのデータベースオプション、パラメータ、ネットワークファイル、およびデータベースリンクを確認し、ターゲットデータベースへの適用性を評価します。 | DBA、アプリ所有者 | |
ターゲットデータベースに関連する設定を適用します。 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
ターゲットデータベースAWSSCTへの接続を設定します。 | DBA | |
でスキーマを変換しAWSSCT、変換したコードを .sql ファイルとして保存します。 | DBA、アプリ所有者 | |
自動変換に失敗したデータベースオブジェクトをすべて手動で変換します。 | DBA、アプリ所有者 | |
データベースコード変換を最適化します。 | DBA、アプリ所有者 | |
.sql ファイルをオブジェクトタイプに基づいて複数の.sql ファイルに分割します。 | DBA、アプリ所有者 | |
ターゲットデータベース内のSQLスクリプトを検証します。 | DBA、アプリ所有者 |
タスク | 説明 | 必要なスキル |
---|---|---|
AWS DMS レプリケーション インスタンスを作成します。 | DBA | |
ソースおよびターゲットエンドポイントを作成します。 | PKs および のデータ型FKsが Oracle NUMBERの から Postgre BIGINTの に変換される場合はSQL、ソースエンドポイントの作成 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
ターゲットデータベースでスキーマとテーブルを作成します。 | DBA | |
テーブルをグループ化するか、テーブルのサイズに基づいて大きなテーブルを分割して、AWSDMS全ロードタスクを作成します。 | DBA | |
ソース Oracle データベース上のアプリケーションを短時間にわたり停止します。 | アプリ所有者 | |
Oracle スタンバイデータベースがプライマリデータベースと同期していることを確認し、プライマリデータベースからスタンバイデータベースへのレプリケーションを停止します。 | DBA、アプリ所有者 | |
アプリケーションをソース Oracle データベースで起動します。 | アプリ所有者 | |
Oracle スタンバイデータベースから Aurora Postgre SQL互換データベースへのAWSDMS全ロードタスクを並列で開始します。 | DBA | |
全ロードが完了したら、 PKsおよび セカンダリインデックスを作成します。 | DBA | |
データを検証します。 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
Oracle スタンバイがプライマリデータベースと同期されたとき、および前のタスクでアプリケーションが再起動される前に、カスタムCDC開始時刻またはシステム変更番号 (SCN) を指定して、AWSDMS継続的なレプリケーションタスクを作成します。 | DBA | |
Oracle スタンバイデータベースから Aurora Postgre SQL互換データベースに継続的な変更をレプリケートするには、AWSDMSタスクを並行して開始します。 | DBA | |
Oracle プライマリデータベースからスタンバイデータベースへのレプリケーションを再確立します。 | DBA | |
ターゲット Aurora Postgre SQL互換データベースがソース Oracle データベースとほぼ同期している場合、ログをモニタリングし、Oracle データベース上のアプリケーションを停止してください。 | DBA、アプリ所有者 | |
ターゲットがソース Oracle データベースと完全に同期したら、AWSDMSタスクを停止します。 | DBA | |
ターゲットデータベース内のデータを作成してFKs検証します。 | DBA | |
ターゲットデータベースに関数、ビュー、トリガー、シーケンス、その他のオブジェクトタイプを作成します。 | DBA | |
ターゲットデータベースにロールの権限を適用します。 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
を使用してAWSSCT、アプリケーションコード内のSQLステートメントを分析および変換します。 | アプリ所有者 | |
で新しいアプリケーションサーバーを作成しますAWS。 | アプリ所有者 | |
アプリケーションコードを新しいサーバーに移行します。 | アプリ所有者 | |
ターゲットデータベースとドライバー用にアプリケーションサーバーを設定します。 | アプリ所有者 | |
アプリケーションのソースデータベースエンジンに固有のコードを修正します。 | アプリ所有者 | |
ターゲットデータベースに合わせてアプリケーションコードを最適化します。 | アプリ所有者 |
タスク | 説明 | 必要なスキル |
---|---|---|
新しいアプリケーションサーバーをターゲットデータベースにポイントします。 | DBA、アプリ所有者 | |
健全性チェックを実行します。 | DBA、アプリ所有者 | |
本番稼働。 | DBA、アプリ所有者 |
タスク | 説明 | 必要なスキル |
---|---|---|
一時AWSリソースをシャットダウンします。 | DBA、システム管理者 | |
プロジェクト文書を確認して検証する。 | DBA、アプリ所有者 | |
移行の所要時間、手動タスクとツールによるタスクの割合、コスト削減などのメトリクスを収集します。 | DBA、アプリ所有者 | |
プロジェクトを終了し、フィードバックを提供します。 | DBA、アプリ所有者 |
関連リソース
リファレンス
チュートリアル