このページでは、Database Migration Service のコンバージョン ワークスペースまたはその以前のバージョンを使用した異種データベース移行の概要について説明します。コンバージョン ワークスペースを使用すると、移行元のデータベースのスキーマとオブジェクトを、移行先のデータベースと互換性のある形式に変換できます。この変換により、Database Migration Service は移行元と移行先のデータベース間でデータを移行できます。
コンバージョン ワークスペースには、スキーマ変換をリアルタイムで操作できるライブ変換エディタが含まれています。また、変換をテストして移行先データベースに適用することもできます。
ただし、Ora2Pg 移行ツールを使用している場合は、従来のコンバージョン ワークスペースを使用することをおすすめします。このようなシナリオでは、スキーマ変換プロセスは Database Migration Service の外部で行われ、ワークスペースは主に移行元データベースと移行先データベース間のコネクタとして機能します。
次の表に、ワークスペース バージョンの違いを示します。
新しいコンバージョン ワークスペース | 以前のコンバージョン ワークスペース |
---|---|
スキーマとコード オブジェクトの変換は Database Migration Service で行われます。 | スキーマとコード オブジェクトの変換は、Ora2Pg 移行ツールを使用して Database Migration Service の外部で実行します。 |
変換されたソースは、Database Migration Service で移行先データベースに直接適用できます。 | 変換されたスキーマを AlloyDB for PostgreSQL の移行先インスタンスの移行先データベースに適用するのはお客様の責任です。 |
ドラフト スキーマとコードは、Database Migration Service で直接テストして、移行先インスタンスに正常に適用できることを確認できます。 | 宛先インスタンスに影響を与えることなく、下書きのスキーマとコードをテストすることはできません。 |
主キーのないテーブルに不足している rowid 列を自動的に追加します。 |
スキーマを変換する前に、不足している主キーをソーステーブルに追加する必要があります。 主キーのないテーブルを移行するをご覧ください。 |
組み込みのコンバージョン エディタ
以降のセクションでは、変換ワークスペースで使用可能な編集可能なコード オブジェクトと変換のカスタマイズについて概要を説明します。
編集可能な Oracle オブジェクト
新しい変換ワークスペースで移行元データベースとコードを変換したら、ライブエディタを使用して、特定のタイプのオブジェクトに対して生成された SQL を変更できます。ライブエディタでサポートされている Oracle オブジェクトは次のとおりです。
- テーブル トリガー(権限が必要)
- マテリアライズド ビュー
- パッケージ
- 関数、ストアド プロシージャ
- 類義語
- ビュー
- 制約
- インデックス
- シーケンス
また、一部のオブジェクトは変換されますが、Database Migration Service 内で直接編集することはできません。このようなオブジェクトを変更するには、変換されたスキーマとコードを適用した後に、移行先データベースで直接更新を行う必要があります。
編集がサポートされていないオブジェクト:
- ユーザー定義オブジェクト タイプ
- Tables
- スキーマ
コードとスキーマの変換のサポート
新しい変換ワークスペースでは、次の Oracle スキーマとコード要素がサポートされています。
サポートされている Oracle スキーマ要素
- 制約
- インデックス(テーブルと同じスキーマで作成されたインデックスのみ)
- マテリアライズド ビュー
- オブジェクトの種類(部分的にサポート)
- シーケンス
- ストアド プロシージャ
- 類義語
- Tables
- ビュー
サポートされている Oracle PL/SQL コード要素
- トリガー(テーブルレベルのみ)
- パッケージ
- 関数
- ストアド プロシージャ
カスタマイズのサポート
Database Migration Service は、変換中にスキーマとコードをカスタマイズできます。利用可能なカスタマイズ機能は次のとおりです。
エンティティの名前を変更する
サポートされているスキーマ要素とコード要素と表の列で使用できます。サポートされている名前変更ディレクティブ:
エンティティを移動する
エンティティを移動するには、
REPLACE_TABLES
ディレクティブを使用して、宛先テーブルの完全な名前(scheme.table
)を指定します。
データ型を変更する
テーブルの列で使用できます。サポートされている列の型の制御ディレクティブ: