このページでは、コンバージョン ワークスペースを作成し、それを使用して Oracle から PostgreSQL への決定論的なコードとスキーマの変換をすぐに実行する方法について説明します。
インタラクティブなコンバージョン ワークスペースは、次の 2 つの方法で作成できます。
直接データベース接続を使用する: Database Migration Service は、接続プロファイルを使用して実行中のソース データベースに直接接続し、ネットワーク接続を介してスキーマを取得します。
Cloud Storage のスキーマ ファイルを使用する: Google 提供の抽出スクリプトを使用してスキーマ メタデータをローカルに抽出し、生成されたファイルを Cloud Storage バケットにアップロードして、ソース データベースに接続せずにワークスペースを準備できます。
ソース データベースに直接接続する
インタラクティブなコンバージョン ワークスペースを作成し、Database Migration Service でソース データベースに直接接続してスキーマ変換を実行できます。この方法でワークスペースを作成する前に、 ソース データベースの接続プロファイルを作成してください。
直接接続方法に必要なロール
変換ワークスペースの作成に必要な権限を取得するには、プロジェクトに対する
データベース移行管理者(roles/datamigration.admin)IAM ロールを付与するよう管理者に依頼してください。
ロールの付与の詳細については、Identity and Access Management のドキュメントの アクセスを管理するをご覧ください。
この事前定義ロールには、Database Migration Service で変換ワークスペースを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Database Migration Service でコンバージョン ワークスペースを作成するには、次の権限が必要です。
cloudaicompanion.entitlements.getこの権限は、
roles/datamigration.adminのロールに含まれています。これは、 Gemini 拡張コンバージョン機能に必要です。datamigration.conversionworkspaces.applydatamigration.conversionworkspaces.commitdatamigration.conversionworkspaces.convertdatamigration.conversionworkspaces.createdatamigration.conversionworkspaces.deletedatamigration.conversionworkspaces.getdatamigration.conversionworkspaces.getIamPolicydatamigration.conversionworkspaces.listdatamigration.conversionworkspaces.rollbackdatamigration.conversionworkspaces.seeddatamigration.conversionworkspaces.setIamPolicydatamigration.conversionworkspaces.update
カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。
接続プロファイルを使用してコンバージョン ワークスペースを作成する
Database Migration Service がソース データベースに接続し、ソース データベース オブジェクトの初期スナップショットを準備するコンバージョン ワークスペースを作成する手順は次のとおりです。
- Google Cloud コンソールで [コンバージョン ワークスペース] に移動します。
- [ワークスペースを設定] をクリックします。
- [コンバージョン ワークスペースを作成] ページで、次の操作を行います。
- 変換ワークスペースの名前、識別子、リージョンを入力します。
- [移行元データベース エンジン] プルダウン メニューから [Oracle] を選択します。
- [移行先データベース エンジン] で [AlloyDB for PostgreSQL] を選択します。
-
[ワークスペースの Gemini 設定を有効にする] セクションで、チェックボックスを使用して Gemini を活用したコンバージョン機能を有効にします。これらの機能は、後で Gemini の支援を受けてコードとスキーマを変換するときに有効にすることもできます。
Gemini を活用した変換機能には、Gemini for Google Cloud API が必要です。詳細については、 Gemini を活用したコンバージョン機能をご覧ください。
- [ワークスペースを作成して続行] をクリックします。
- [ソースの定義とスキーマ スナップショットの pull] ページで、次の操作を行います。
- [ソース接続方法] セクションで、[接続プロファイル] を選択します。
- [ソース接続プロファイル] プルダウン メニューから、ソース データベースの接続プロファイルを選択します。
- [スキーマのスナップショットを pull して続行] をクリックします。
Database Migration Service がソース データベースに接続し、スキーマを取得しています。 この処理には数分かかることがあります。
- [オブジェクトを選択して変換] ページで、チェックボックスを使用して、PostgreSQL 構文に変換するオブジェクトを選択します。
すべてのオブジェクトを一度に変換する必要はありません。代わりに、いくつかのオブジェクトを選択して、後で 変換にオブジェクトを追加できます。
- [変換して続行] をクリックします。
コンバージョン ワークスペースが開きます。
Cloud Storage に保存されているスキーマ ファイルを使用する
Google 提供の抽出スクリプトを使用してスキーマ メタデータをローカルで抽出し、結果のファイルを Cloud Storage バケットにアップロードして、ソース データベースに接続せずにワークスペースを準備できます。
Cloud Storage でスキーマ ファイルを使用するために必要なロール
Cloud Storage に保存されているスキーマ ファイルを使用してコンバージョン ワークスペースを作成するために必要な権限を取得するには、 移行プロセスに関与する次のアカウントに、プロジェクトに対する必要な IAM ロールを付与するよう管理者に依頼してください。
- コンバージョン ワークスペースを作成するユーザー アカウント:
Database Migration 管理者(
roles/datamigration.admin) - Database Migration Service サービス アカウント: スキーマ ファイルを保存する Cloud Storage バケットに対する
ストレージ オブジェクト閲覧者(
roles/storage.objectViewer)ロール。Database Migration Service サービス アカウントのメールアドレスは、
service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.comの形式になります。PROJECT_NUMBER は、使用する Google Cloud プロジェクト番号に置き換えます。このサービス アカウントの詳細については、 Database Migration Service サービス アカウントをご覧ください。
ロールの付与の詳細については、Identity and Access Management のドキュメントの アクセスを管理するをご覧ください。
roles/datamigration.admin 事前定義ロールには、Database Migration Service でコンバージョン ワークスペースを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Database Migration Service でコンバージョン ワークスペースを作成するには、次の権限が必要です。
cloudaicompanion.entitlements.getこの権限は、
roles/datamigration.adminのロールに含まれています。これは、 Gemini 拡張コンバージョン機能に必要です。datamigration.conversionworkspaces.applydatamigration.conversionworkspaces.commitdatamigration.conversionworkspaces.convertdatamigration.conversionworkspaces.createdatamigration.conversionworkspaces.deletedatamigration.conversionworkspaces.getdatamigration.conversionworkspaces.getIamPolicydatamigration.conversionworkspaces.listdatamigration.conversionworkspaces.rollbackdatamigration.conversionworkspaces.seeddatamigration.conversionworkspaces.setIamPolicydatamigration.conversionworkspaces.update
カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。
スキーマ ファイルを使用してコンバージョン ワークスペースを作成する
スキーマ ファイルを使用してコンバージョン ワークスペースを作成する手順は次のとおりです。
- Google Cloud コンソールから Python スクリプトを取得します。手順は次のとおりです。
- Google Cloud コンソールで [コンバージョン ワークスペース] に移動します。
- [ワークスペースを設定] をクリックします。
- [コンバージョン ワークスペースの作成] ページで、次の操作を行います。
- ワークスペースの名前、識別子、リージョンを入力します。
- [移行元データベース エンジン] プルダウン メニューから [Oracle] を選択します。
- [移行先データベース エンジン] プルダウン メニューから [AlloyDB for PostgreSQL] を選択します。
-
[ワークスペースの Gemini 設定を有効にする] セクションで、チェックボックスをオンにして Gemini を活用したコンバージョン機能を有効にし、[続行] をクリックします。
これらの機能は、後で Gemini のアシスト機能を使用してコードとスキーマを変換するときに有効にすることもできます。Gemini を活用した変換機能には、Gemini for Google Cloud API が必要です。詳細については、 Gemini を活用したコンバージョン機能をご覧ください。
- [ソースの定義とスキーマ スナップショットの pull] ページの [ソース接続方法] セクションで、[Cloud Storage] を選択します。
- [フォルダを選択する前に] セクションで、[Oracle メタデータ エクストラクタ] の見出しの横にある [開く] をクリックします。サイドパネルの手順に沿って、抽出ユーティリティをダウンロードしてソース データベースに対して実行し、スキーマ メタデータの JSON ファイルを生成します。このユーティリティを使用するには、ソース データベースとのネットワーク接続を確立できる必要があります。
- スキーマ メタデータの JSON ファイルをアップロードする専用の Cloud Storage バケットを作成します。Cloud Storage バケットの作成の詳細については、Cloud Storage ドキュメントの バケットの作成をご覧ください。
- 専用の Cloud Storage バケット内に、前の手順でエクスポートしたデータベース スキーマ ファイル用の空の専用フォルダを作成します。Cloud Storage フォルダの作成の詳細については、Cloud Storage ドキュメントの フォルダの作成と管理をご覧ください。
- 前の手順で Google Cloud コンソールから取得した Python スクリプトで作成したメタデータ JSON スキーマ ファイルのみを、Cloud Storage バケットの空の専用データベース フォルダにアップロードします。
- Google Cloud コンソールでワークスペースの作成を続行するか、Google Cloud CLI で新しいワークスペースを作成します。
コンソール
- 抽出したスキーマ メタデータ ファイルを Cloud Storage バケットにアップロードしたら、[ソースを定義してスキーマ スナップショットを pull する] ページに進みます。
- [フォルダ] フィールドで [参照] をクリックし、スキーマ ファイルを含むフォルダを選択します。
- [スキーマのスナップショットを pull して続行] をクリックします。
Database Migration Service がバケットからスキーマ メタデータを解析します。
- [オブジェクトを選択して変換する] ページで、変換するオブジェクトを選択し、[変換して続行] をクリックします。
gcloud
抽出したスキーマ メタデータ ファイルを Cloud Storage バケットにアップロードしたら、Google Cloud CLI を使用して新しいワークスペースを作成して初期化できます。手順は次のとおりです。
-
空のコンバージョン ワークスペースを作成します。
次のコマンドを実行します(クリックして展開)。gcloud database-migration conversion-workspaces creategcloud database-migration conversion-workspaces create WORKSPACE_ID \ --region=REGION \ --source-database-engine=ORACLE \ --destination-database-engine=POSTGRESQL
次のように置き換えます。
- WORKSPACE_ID: コンバージョン ワークスペースの ID。
- REGION: ワークスペースを作成するリージョン。
-
Cloud Storage のスキーマ ファイルを使用してワークスペースを初期化します。
バケットに保存されているスキーマ メタデータ ファイルを解析して変換ワークスペースに読み込むには、次のコマンドを実行します(クリックして展開)。gcloud database-migration conversion-workspaces seedgcloud database-migration conversion-workspaces seed WORKSPACE_ID \ --region=REGION \ --gcs-path=gs://BUCKET_NAME/PREFIX/
次のように置き換えます。
- WORKSPACE_ID: コンバージョン ワークスペースの ID。
- REGION: ワークスペースを作成するリージョン。
- BUCKET_NAME: スキーマ ファイルを含む Cloud Storage バケットの名前。
- PREFIX: 抽出されたスキーマ メタデータ ファイルを含むフォルダのパス。
以前のコンバージョン ワークスペース
以前のコンバージョン ワークスペースは、より制限の多い古いタイプのコンバージョン ワークスペースです。移行に以前のタイプの変換ワークスペースを使用することはおすすめしません。以前のコンバージョン ワークスペースを使用する必要がある場合は、[以前のコンバージョン ワークスペースを作成してスキーマを変換する] セクションを開いて詳細を確認してください。
以前のコンバージョン ワークスペースを作成してスキーマを変換する
以前のコンバージョン ワークスペースでは、Ora2Pg 構成ファイルが使用されます。以前のコンバージョン ワークスペースを作成する前に、Database Migration Service の外部で Ora2Pg 構成を作成してください。詳細については、 以前のコンバージョン ワークスペースを操作するをご覧ください。
- Google Cloud コンソールで [コンバージョン ワークスペース] に移動します。
- [ワークスペースを設定] をクリックします。
- [コンバージョン ワークスペースを作成] ページで、次の操作を行います。
- 変換ワークスペースの名前、識別子、リージョンを入力します。
- [移行元データベース エンジン] プルダウン メニューから [Oracle] を選択します。
- [移行先データベース エンジン] で [AlloyDB for PostgreSQL] を選択します。
- [ワークスペース構成のカスタマイズ] セクションを開き、[以前のコンバージョン ワークスペースを有効にする] チェックボックスをオンにします。
- [ワークスペースを作成して続行] をクリックします。
- [ソースに接続してオブジェクトを変換する] ページで、次の操作を行います。
- [ソース接続プロファイル] プルダウン メニューから、ソース データベースの接続プロファイルを選択します。
-
[構成ファイル] ボックスで [参照] をクリックし、システム ファイル選択ツールを使用して変換マッピング ファイルを選択します。
[ファイルを追加] をクリックすると、複数のコンバージョン マッピング ファイルをアップロードできます。
-
[構成を変換する] セクションで、[スキーマを pull して変換する] をクリックします。
Database Migration Service は、ソース データベースに接続してスキーマを取得し、変換マッピング ファイルで定義されたルールに従って、取得したスキーマを宛先 SQL スキーマに変換しています。この処理には数分かかることがあります。
- [保存して閉じる] をクリックします。
コンバージョン ワークスペースの詳細ページが開きます。
変換されたスキーマを移行先データベースに適用できるようになりました。ソース データベースに主キーのないテーブルが含まれている場合は、変換されたスキーマを適用した後、宛先データベースの変換されたテーブルに主キー制約を手動で作成する必要があります。詳細については、 以前のコンバージョン ワークスペースを操作するをご覧ください。
次のステップ
コンバージョン ワークスペースを使用して、コンバージョンの問題を修正し、インタラクティブ エディタでオブジェクトを変更して、変換後のスキーマを宛先データベースに適用できるようになりました。 Oracle のコードとスキーマを PostgreSQL 構文に変換するをご覧ください。