このページでは、Ora2Pg 移行ツールを使用して、レガシー コンバージョン ワークスペースで変換用にソース データベース スキーマを準備する方法について説明します。
Oracle と PostgreSQL では、異なる SQL 言語とデータ型を使用して、オブジェクトとそのデータの種類を定義します。これらの SQL エンジン間で移行する場合は、Oracle のスキーマとコードを PostgreSQL と互換性のあるスキーマとコードに変換する必要があります。
Database Migration Service では、移行元の変換に次の 2 つの方法があります。
(推奨)コンバージョン ワークスペースと組み込みのコンバージョン エディタを使用します。
このアプローチでは、スキーマ変換が自動化され、すべてのアクションが Database Migration Service 内で直接行われます。この方法を使用する場合は、(関連する接続情報を追加する場合を除き)追加の準備は必要ありません。移行先の Cloud SQL for PostgreSQL データベースを構成するセクションに進みます。
Ora2Pg 変換ツールで以前のコンバージョン ワークスペースを使用します。
この方法は、Database Migration Service の外部で変換手順を実行する場合に便利です。コンバージョン ワークスペースを作成する前に、スキーマ変換に Ora2Pg を使用するセクションの手順をすべて実施します。
Ora2Pg を使用してスキーマを変換する
コンバージョン ワークスペースを設定する前に、次の操作を行います。
- Ora2Pg ファイルを構成します。詳細については、Ora2Pg ドキュメントの構成セクションをご覧ください。
- Ora2Pg を使用して、Cloud SQL for PostgreSQL の移行先データベースに読み込むことができる SQL スクリプトを生成します。詳細については、Ora2Pg ドキュメントのインストール セクションをご覧ください。
- Cloud SQL for PostgreSQL データベースで SQL スクリプトを実行します。これにより、データベースにスキーマが作成されます。
これらの手順が完了したら、構成した Ora2Pg ファイルを含む コンバージョン ワークスペースを作成します。Database Migration Service は、このファイルを使用して、移行元 Oracle データベースと、Cloud SQL for PostgreSQL の移行先データベースとの間にテーブル マッピングを作成します。これらのテーブル マッピングは、Database Migration Service が移行元から移行先にデータを適切に読み込むために使用されます。
Ora2Pg ディレクティブを使用する
Database Migration Service は、Ora2Pg 構成ファイルで次のディレクティブを使用します。
BOOLEAN_VALUES
DATA_TYPE
DEFAULT_NUMERIC
ENABLE_MICROSECOND
EXPORT_SCHEMA
MODIFY_STRUCT
MODIFY_TYPE
PG_INTEGER_TYPE
PG_NUMERIC_TYPE
PG_SCHEMA
PRESERVE_CASE
REPLACE_AS_BOOLEAN
REPLACE_COLS
REPLACE_TABLES
SCHEMA
Database Migration Service は接続プロファイルを使用して接続の詳細を定義するため、Or2Pg 構成ファイルで次のディレクティブを定義する必要はありません。
ORACLE_DSN
ORACLE_HOME
ORACLE_PWD
ORACLE_USER
PG_DSN
PG_PWD
PG_USER
また、Database Migration Service は、WHERE
構成ディレクティブを使用して移行するレコードを制限しません。
Ora2Pg 構成ディレクティブの詳細については、Ora2Pg ドキュメントの構成セクションをご覧ください。
主キーのないテーブルの操作
主キーがないテーブルでデータ操作言語の UPDATE
ステートメントと DELETE
ステートメントを使用すると、Database Migration Service でどの行が変更されたかを追跡できないため、レコードが重複する可能性があります。ソース データベース内の主キーのないテーブルを移行する方法については、主キーのないテーブルを移行するをご覧ください。