コンバージョン ワークスペースを作成し、スキーマを変換する

このページでは、コンバージョン ワークスペースを作成し、それを使用して 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.apply
  • datamigration.conversionworkspaces.commit
  • datamigration.conversionworkspaces.convert
  • datamigration.conversionworkspaces.create
  • datamigration.conversionworkspaces.delete
  • datamigration.conversionworkspaces.get
  • datamigration.conversionworkspaces.getIamPolicy
  • datamigration.conversionworkspaces.list
  • datamigration.conversionworkspaces.rollback
  • datamigration.conversionworkspaces.seed
  • datamigration.conversionworkspaces.setIamPolicy
  • datamigration.conversionworkspaces.update

カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。

接続プロファイルを使用してコンバージョン ワークスペースを作成する

Database Migration Service がソース データベースに接続し、ソース データベース オブジェクトの初期スナップショットを準備するコンバージョン ワークスペースを作成する手順は次のとおりです。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動します。

    [コンバージョン ワークスペース] に移動

  2. [ワークスペースを設定] をクリックします。
  3. [コンバージョン ワークスペースを作成] ページで、次の操作を行います。
    1. 変換ワークスペースの名前、識別子、リージョンを入力します。
    2. [移行元データベース エンジン] プルダウン メニューから [Oracle] を選択します。
    3. [移行先データベース エンジン] で [Cloud SQL for PostgreSQL] を選択します。
    4. [ワークスペースの Gemini 設定を有効にする] セクションで、チェックボックスを使用して Gemini を活用したコンバージョン機能を有効にします。これらの機能は、後で Gemini の支援を受けてコードとスキーマを変換するときに有効にすることもできます。

      Gemini を活用した変換機能には、Gemini for Google Cloud API が必要です。詳細については、 Gemini を活用したコンバージョン機能をご覧ください。

    5. [ワークスペースを作成して続行] をクリックします。
  4. [ソースの定義とスキーマ スナップショットの pull] ページで、次の操作を行います。
    1. [ソース接続方法] セクションで、[接続プロファイル] を選択します。
    2. [ソース接続プロファイル] プルダウン メニューから、ソース データベースの接続プロファイルを選択します。
    3. [スキーマのスナップショットを pull して続行] をクリックします。

    Database Migration Service がソース データベースに接続し、スキーマを取得しています。 この処理には数分かかることがあります。

  5. [オブジェクトを選択して変換] ページで、チェックボックスを使用して、PostgreSQL 構文に変換するオブジェクトを選択します。

    すべてのオブジェクトを一度に変換する必要はありません。代わりに、いくつかのオブジェクトを選択して、後で 変換にオブジェクトを追加できます。

  6. [変換して続行] をクリックします。

    コンバージョン ワークスペースが開きます。

  7. 新しいワークスペースを初めて開くときに、アップグレードして Gemini を活用した自動変換機能にアクセスできます。次の操作を行います。
    • [Gemini の自動変換の概要] ダイアログで、[ワークスペースをアップグレードして新しいエクスペリエンスを試す] チェックボックスをオンにして、[続行] をクリックします。
    • [Gemini でソース オブジェクトを変換しますか?] ダイアログで、[変換] をクリックします。

      Database Migration Service は、変換プロセスを再度実行して、決定論的な変換結果に Gemini を活用した変換の機能強化を適用します。Gemini 自動変換機能の詳細については、 Gemini 自動変換をご覧ください。

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. の形式になります。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.apply
  • datamigration.conversionworkspaces.commit
  • datamigration.conversionworkspaces.convert
  • datamigration.conversionworkspaces.create
  • datamigration.conversionworkspaces.delete
  • datamigration.conversionworkspaces.get
  • datamigration.conversionworkspaces.getIamPolicy
  • datamigration.conversionworkspaces.list
  • datamigration.conversionworkspaces.rollback
  • datamigration.conversionworkspaces.seed
  • datamigration.conversionworkspaces.setIamPolicy
  • datamigration.conversionworkspaces.update

カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。

スキーマ ファイルを使用してコンバージョン ワークスペースを作成する

スキーマ ファイルを使用してコンバージョン ワークスペースを作成する手順は次のとおりです。

  1. Google Cloud コンソールから Python スクリプトを取得します。手順は次のとおりです。
    1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動します。

      [コンバージョン ワークスペース] に移動

    2. [ワークスペースを設定] をクリックします。
    3. [コンバージョン ワークスペースの作成] ページで、次の操作を行います。
      1. ワークスペースの名前、識別子、リージョンを入力します。
      2. [移行元データベース エンジン] プルダウン メニューから [Oracle] を選択します。
      3. [移行先データベース エンジン] プルダウン メニューから [Cloud SQL for PostgreSQL] を選択します。
      4. [ワークスペースの Gemini 設定を有効にする] セクションで、チェックボックスをオンにして Gemini を活用したコンバージョン機能を有効にし、[続行] をクリックします。

        これらの機能は、後で Gemini のアシスト機能を使用してコードとスキーマを変換するときに有効にすることもできます。Gemini を活用した変換機能には、Gemini for Google Cloud API が必要です。詳細については、 Gemini を活用したコンバージョン機能をご覧ください。

    4. [ソースの定義とスキーマ スナップショットの pull] ページの [ソース接続方法] セクションで、[Cloud Storage] を選択します。
    5. [フォルダを選択する前に] セクションで、[Oracle メタデータ エクストラクタ] の見出しの横にある [開く] をクリックします。サイドパネルの手順に沿って、抽出ユーティリティをダウンロードしてソース データベースに対して実行し、スキーマ メタデータの JSON ファイルを生成します。このユーティリティを使用するには、ソース データベースとのネットワーク接続を確立できる必要があります。
  2. スキーマ メタデータの JSON ファイルをアップロードする専用の Cloud Storage バケットを作成します。Cloud Storage バケットの作成の詳細については、Cloud Storage ドキュメントの バケットの作成をご覧ください。
  3. 専用の Cloud Storage バケット内に、前の手順でエクスポートしたデータベース スキーマ ファイル用の空の専用フォルダを作成します。Cloud Storage フォルダの作成の詳細については、Cloud Storage ドキュメントの フォルダの作成と管理をご覧ください。
  4. 前の手順で Google Cloud コンソールから取得した Python スクリプトで作成したメタデータ JSON スキーマ ファイルのみを、Cloud Storage バケットの空の専用データベース フォルダにアップロードします。
  5. Google Cloud コンソールでワークスペースの作成を続行するか、Google Cloud CLI で新しいワークスペースを作成します。

    コンソール

    1. 抽出したスキーマ メタデータ ファイルを Cloud Storage バケットにアップロードしたら、[ソースを定義してスキーマ スナップショットを pull する] ページに進みます。
    2. [フォルダ] フィールドで [参照] をクリックし、スキーマ ファイルを含むフォルダを選択します。
    3. [スキーマのスナップショットを pull して続行] をクリックします。

      Database Migration Service がバケットからスキーマ メタデータを解析します。

    4. [オブジェクトを選択して変換する] ページで、変換するオブジェクトを選択し、[変換して続行] をクリックします。

    gcloud

    抽出したスキーマ メタデータ ファイルを Cloud Storage バケットにアップロードしたら、Google Cloud CLI を使用して新しいワークスペースを作成して初期化できます。手順は次のとおりです。

    1. 空のコンバージョン ワークスペースを作成します。
      次のコマンドを実行します(クリックして展開)。

      gcloud database-migration conversion-workspaces create

        gcloud database-migration conversion-workspaces create WORKSPACE_ID \
            --region=REGION \
            --source-database-engine=ORACLE \
            --destination-database-engine=POSTGRESQL

      次のように置き換えます。

      • WORKSPACE_ID: コンバージョン ワークスペースの ID。
      • REGION: ワークスペースを作成するリージョン。
    2. Cloud Storage のスキーマ ファイルを使用してワークスペースを初期化します。
      バケットに保存されているスキーマ メタデータ ファイルを解析して変換ワークスペースに読み込むには、次のコマンドを実行します(クリックして展開)。

      gcloud database-migration conversion-workspaces seed

        gcloud 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 構成を作成してください。詳細については、 以前のコンバージョン ワークスペースを操作するをご覧ください。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動します。

    [コンバージョン ワークスペース] に移動

  2. [ワークスペースを設定] をクリックします。
  3. [コンバージョン ワークスペースを作成] ページで、次の操作を行います。
    1. 変換ワークスペースの名前、識別子、リージョンを入力します。
    2. [移行元データベース エンジン] プルダウン メニューから [Oracle] を選択します。
    3. [移行先データベース エンジン] で [Cloud SQL for PostgreSQL] を選択します。
    4. [ワークスペース構成のカスタマイズ] セクションを開き、[以前のコンバージョン ワークスペースを有効にする] チェックボックスをオンにします。
    5. [ワークスペースを作成して続行] をクリックします。
  4. [ソースに接続してオブジェクトを変換する] ページで、次の操作を行います。
    1. [ソース接続プロファイル] プルダウン メニューから、ソース データベースの接続プロファイルを選択します。
    2. [構成ファイル] ボックスで [参照] をクリックし、システム ファイル選択ツールを使用して変換マッピング ファイルを選択します。

      [ファイルを追加] をクリックすると、複数のコンバージョン マッピング ファイルをアップロードできます。

    3. [構成を変換する] セクションで、[スキーマを pull して変換する] をクリックします。

      Database Migration Service は、ソース データベースに接続してスキーマを取得し、変換マッピング ファイルで定義されたルールに従って、取得したスキーマを宛先 SQL スキーマに変換しています。この処理には数分かかることがあります。

  5. [保存して閉じる] をクリックします。

    コンバージョン ワークスペースの詳細ページが開きます。

変換されたスキーマを移行先データベースに適用できるようになりました。ソース データベースに主キーのないテーブルが含まれている場合は、変換されたスキーマを適用した後、宛先データベースの変換されたテーブルに主キー制約を手動で作成する必要があります。詳細については、 以前のコンバージョン ワークスペースを操作するをご覧ください。

次のステップ

コンバージョン ワークスペースを使用して、コンバージョンの問題を修正し、インタラクティブ エディタでオブジェクトを変更して、変換後のスキーマを宛先データベースに適用できるようになりました。 Oracle のコードとスキーマを PostgreSQL 構文に変換するをご覧ください。