チュートリアル: Oracle から Azure Database for PostgreSQL フレキシブル サーバーへのスキーマ変換

このチュートリアルでは、Visual Studio Code PostgreSQL 拡張機能と Microsoft Foundry を使用して PostgreSQL 定義を生成および確認することで、Oracle データベース スキーマをAzure Database for PostgreSQLに変換する方法について説明します。

Oracle のソースと Azure Database for PostgreSQL のターゲットへの接続、Microsoft Foundry の構成、移行ウィザードの実行、生成された PostgreSQL アーティファクトの確認について説明します。 開始する前に、サーバーと Microsoft Foundry 展開の両方に対するネットワーク アクセスと資格情報があることを確認します。

変換中に期待できることは次のとおりです。

  • スキーマ検出: このツールは、Oracle スキーマ オブジェクトを分析します。
  • AI 処理: Microsoft Foundry は互換性のあるオブジェクトを処理し、変換します。
  • スクラッチ データベースのチェック: このツールは、コンパイルと、利用可能な静的チェックを実行します。 機能、データ、およびアプリケーションの検証は分離されたままになります。
  • オブジェクト レビュー: 変換オブジェクト エクスプローラーを使用して結果を検査し、生成された PostgreSQL 定義を絞り込みます。
  • 出力生成: 正常に変換されたオブジェクトは PostgreSQL ファイルとして保存されます。

Prerequisites

このセクションでは、変換を開始する前に、Visual Studio Code で Oracle から Azure Database for PostgreSQL スキーマ変換機能を使用するための前提条件について説明します。

システム要件

カテゴリ 詳細情報
Visual Studio Code のバージョン 1.95.2 以降
GitHub Copilot サブスクリプション Pro+、Business、Enterprise

オペレーティング システムのサポート

オペレーティング システム サポートの詳細
Windows x64 アーキテクチャのみ
Linux x64 アーキテクチャ
macOS macOS 13 以降

対象となる Azure Database for PostgreSQL の要件

コンポーネント バージョン要求
Azure Database for PostgreSQL PostgreSQL バージョン 15 以降
スクラッチ データベース Azure Database for PostgreSQL - フレキシブル サーバー

AI モデルの要件

次のいずれかの AI コンポーネントが構成されている必要があります。

AI コンポーネント モデルのバージョン番号
Microsoft Foundry GPT-5.2 の展開

Microsoft Foundry のデプロイ構成

Microsoft Foundry で、gpt-5.2 モデルを使用するデプロイを作成します。 デプロイ名は、デプロイの作成時に選択した名前です。モデル名と一致する必要はありません。

エンドポイントは、Microsoft Foundry リソース URL です。 Microsoft Foundry リソースでは、複数の同等なホスト名が使用でき、以下のいずれの形式も有効です。

  • https://{your-resource}.services.ai.azure.com
  • https://{your-resource}.openai.azure.com
  • https://{your-resource}.cognitiveservices.azure.com

{your-resource} を、Microsoft Foundry リソース名 (例: oracletopg) に置き換えます。 推論ルートを直接呼び出す必要がある場合、現在のプレビュー パスは /openai/responses?api-version=2025-04-01-preview。

エンドポイント形式と推論ルートの詳細については、「Endpoints for Microsoft Foundry Models」を参照してください。

Tip

Microsoft Foundry トラフィックをAzure API Management経由して一元的なガバナンス、調整、監視を行うには、Foundry リソースの前に AI ゲートウェイを構成し、ゲートウェイ URL をエンドポイントとして使用します。 詳細については、「 Foundry リソースで AI ゲートウェイを構成する」を参照してください。

必要なデータベース特権

スキーマ変換を実行する前に、ソース メタデータ アクセスとスクラッチ データベースのアクセス許可をデータベース管理者に確認します。 Oracle アカウントは、アプリケーション行データではなく、スキーマ メタデータとディクショナリ ビューにアクセスする必要があります。 PostgreSQL アカウントは、一致するスキーマを削除して再作成し、検証用のオブジェクトを作成できる必要があります。 可能な限り専用アカウントを使用し、最小限の特権の原則に従ってください。

Oracle のソース特権

ソース Oracle データベースには、次の最小特権が必要です。

権限 Purpose
CONNECT 基本的なデータベース接続
SELECT_CATALOG_ROLE データ ディクショナリ ビューへのアクセス
任意のディクショナリを選択する システム メタデータとディクショナリ オブジェクトの読み取り
セレクト SYS.ARGUMENT$ プロシージャと関数の引数情報へのアクセス
セレクト SYS.V_$RESOURCE_LIMIT V$RESOURCE_LIMIT を通じたセッションとプロセスの使用率および制限へのアクセス

スクラッチ データベース権限

選択したスクラッチ データベースに次のアクセス権を設定します。 データベース レベルの CREATE 権限では、別のロールが所有するスキーマを削除する権限は付与されません。

Access Purpose
CONNECT データベース上で 変換と検証のために接続します。
CREATE データベース上で 検証スキーマを作成します。
一致するスキーマの所有権、または適切な権限を持つロール 一致するスキーマを再作成する前に削除してください。
検証スキーマにオブジェクトを作成するためのアクセス許可 変換された定義を作成してコンパイルします。
拡張機能のインストール権限、または管理者によるサポート 変換と検証に必要な拡張機能をインストールします。

ネットワークの要件

  • アウトバウンド接続: Microsoft Foundry エンドポイント。
  • データベース接続性: ソースは Oracle、ターゲットは Azure Database for PostgreSQL フレキシブル サーバーの両方。
  • HTTPS 経由のアクセス: Visual Studio Code Extensions Marketplace および GitHub Copilot サービス。
  • GitHub リポジトリ アクセス: https://github.com/microsoft/pgsql-tools/。

Oracle インスタント クライアント(リッチクライアント モードの場合)

スキーマ変換ツールは、シン クライアント モードを使用して Oracle に既定で接続します。追加のソフトウェアは必要ありません。 環境でシック クライアント モードが必要な場合は、Visual Studio Code実行されているコンピューターに Oracle インスタント クライアントをインストールします。 このツールは、 sqlnet.ora と tnsnames.ora 構成を読み取り、設定で必要になったときに自動的にシック モードに切り替わります。

ソース環境の Oracle ネットワーク構成ファイルを調べて、シック クライアント モードが必要かどうかを判断できます。 sqlnet.ora ファイル (通常は $ORACLE_HOME/network/admin/ にあります) で、次のパラメーターを探します。

パラメーター 厚みモードが必要であることを示します
SQLNET.CRYPTO_CHECKSUM_CLIENT ネイティブ ネットワーク暗号化の REQUIRED または REQUESTED に設定する
SQLNET.ENCRYPTION_CLIENT ネイティブ ネットワーク暗号化の REQUIRED または REQUESTED に設定する

Microsoft Foundry 認証

Microsoft Foundry に対して次のいずれかの認証方法を構成します。

認証方法 必要条件
API キー Microsoft Foundry のエンドポイント URL と API キー。
Microsoft Entra ID Azureアカウント拡張機能がサインインし、Foundry User ロール (旧称 Azure AI User) がMicrosoft Foundry リソースに割り当てられます。

移行プロセス

このセクションでは、変換ワークフローについて説明します。 拡張機能をインストールし、プロジェクトを初期化し、Oracle に接続し、Discovery を確認し、スクラッチ データベースと Microsoft Foundry を構成します。 変換では、スクラッチ データベースでコンパイルと使用可能な静的チェックが試行されます。 次に、出力を確認して調整し、別の非本番環データベースにデプロイして、運用環境で使用する前に個別に検証します。

手順 1: PostgreSQL Visual Studio Code 拡張機能をインストールする

  1. Visual Studio Codeを開く。

  2. [拡張機能] ビュー (Ctrl+Shift+X) に移動します。

  3. PostgreSQL を検索し、Microsoft によって発行された PostgreSQL 拡張機能をインストールします。

    1. Marketplace のダウンロード

    Visual Studio Codeでの PostgreSQL 拡張機能のインストールのスクリーンショット。

手順 2: Azure Database for PostgreSQL接続を作成する

  1. PostgreSQL 拡張機能パネルで、Azure Database for PostgreSQL フレキシブル サーバー インスタンスへの接続を作成します。

  2. 接続の詳細 (ホスト、データベース、ユーザー名、パスワード) を入力します。

  3. 接続をテストして保存します。

    新しいAzure Database for PostgreSQL接続を追加するスクリーンショット。

手順 3: 新しいワークスペースを開く

  1. 移行プロジェクトのローカル コンピューターに新しいフォルダーを作成します。

  2. Visual Studio Codeで新しいワークスペースとしてフォルダーを開きます。

    Visual Studio Codeに新しいワークスペースを追加するスクリーンショット。

手順 4: 移行プロジェクトを初期化する

  1. PostgreSQL 拡張機能を開きます。

  2. 移行 パネルを開きます。

  3. Create Migration Project を選択します。

    新しい移行プロジェクトの作成のスクリーンショット。

手順 5: プロジェクト設定を構成する

  1. 移行ウィザードで、プロジェクト名を入力します。

  2. [次へ] を選択して続行します。

    プロジェクト名のスクリーンショット。

手順 6: Oracle 接続を構成する

  1. Oracle 接続の詳細を入力します。

    • ホストまたはサーバー名。
    • ポート番号。
    • データベースまたはサービス名。
    • ユーザー名とパスワード。

    このツールは、 sqlnet.ora と tnsnames.ora の設定からシン クライアント モードまたはシック クライアント モードを自動的に選択します。UI は手動セレクターを公開しません。 軽量モードが既定で使用されます。 sqlnet.oraにシック モードが必要な場合は、続行する前に、Oracle インスタント クライアントがインストールされていること、およびその場所が PATH 環境変数にあることを確認してください。 詳細については、「 Oracle インスタント クライアント」を参照してください。

  2. [ スキーマの読み込み] を選択します。 このツールは Oracle 接続をテストし、成功した場合は、Oracle で使用可能なすべてのユーザー定義スキーマを一覧表示します。

  3. PostgreSQL に変換する 1 つ以上のスキーマを選択します。

  4. 次へ: Discovery を選択します。

    選択したスキーマと [次へ: 検出] ボタンを含む Oracle 接続のスクリーンショット。接続値は伏せられています。

手順 7: 検出結果を確認する

Discovery には、ソース インベントリと計画された抽出スコープが表示されます。 この段階では DDL は抽出されません。 概要の数とスコープの説明については、スキーマ変換の概要の Discoveryを参照してください。

  1. Discovery が完了するまで待ちます。

  2. [ ソースのアクセス許可] で、各チェック、目的、結果を確認します。 Oracle Database 管理者と失敗したチェック項目を確認します。 アクセス許可の問題を解決したら、[検出の更新] を選択し、更新された結果を確認します。 必要な権限については、「Oracle ソース権限」を参照してください。

  3. 検出済み、 抽出対象、 除外済み、 および 無効なオブジェクト の概要カウントを確認します。

  4. サポートされているオブジェクトの種類を展開して、種類別の抽出対象、除外、無効なオブジェクトの件数を確認します。 サポートされている型でも、除外オブジェクトを含む場合があります。これらのカウントは変換結果ではありません。

  5. [ サポートされていないオブジェクトの種類 ] を展開して、ソースで見つかったサポートされていないカテゴリを確認してください。 サポートの詳細と PostgreSQL の代替方法については、「 スキーマ変換の制限事項」を参照してください。

  6. [依存スキーマ] で、選択しなかった参照先スキーマを確認します。 [ダイアグラムの表示] を選択して参照先を表示します。 接続の数値は、抽出または変換するオブジェクトの数ではなく、依存関係参照を表します。

  7. 移行されていない参照先の Oracle システム スキーマに関する個別の通知を確認します。 これらの参照は、変換用に選択された追加のアプリケーション スキーマとして扱わないようにしてください。

  8. スキーマの選択を変更する必要がある場合は、[前へ] を選択して [Oracle への接続] に戻り、[スキーマ] を更新して、[次へ: 検出] をもう一度選択します。 続行する前に、更新されたスコープを確認してください。

  9. [オブジェクト、除外、依存スキーマを確認しました] を選択します。

  10. [次へ: PostgreSQL 接続] を選択します。

    アクセス許可チェック、オブジェクト数、依存関係、スコープの確認、および次の Discovery: PostgreSQL 接続のスクリーンショット。接続の詳細は黒塗りされています。

手順 8: Azure Database for PostgreSQL 一時データベースを構成する

保持する必要があるオブジェクトやデータがない空または専用の未使用のスクラッチ データベースを使用します。 準備のガイダンスについては、「スクラッチ データベースの準備」を参照してください。

  1. PostgreSQL 拡張機能で定義したAzure Database for PostgreSQL接続を選択します。

  2. ドロップダウン リストから ターゲット データベース を選択します。

  3. 拡張機能の確認 を選択します。 「推奨される拡張機能がインストールされていません」の警告が表示される場合は、不足している拡張機能を確認してください。 スクラッチ データベースの準備ガイダンスに従って、必要な拡張機能をサーバーの許可一覧に追加し、選択したデータベースにインストールしてから、[ 拡張機能の確認 ] をもう一度選択します。 警告付きで続行できますが、不足している拡張機能に依存するオブジェクトには手動で変更が必要になる場合があります。

    推奨拡張機能の警告とスキーマ再作成の確認を含むスクラッチ データベース接続のスクリーンショット。

  4. 選択した Oracle スキーマに一致するスクラッチ スキーマが削除され、変換中に再作成され、既存のオブジェクトとデータが削除されることを了承するチェック ボックスをオンにします。

  5. 次へ: Microsoft Foundry モデル構成 を選択します。

手順 9: Microsoft Foundry 言語モデルを構成する

Microsoft Foundry で、1 分あたり 1,000,000 トークン (TPM) を超えるデプロイ クォータを割り当てます。 次の展開例は、230 万 TPM 用に構成されています。表示される使用可能なクォータは、その環境に固有です。

Microsoft Foundry デプロイの詳細のスクリーンショット。[Tokens per Minute Rate Limit]\(1 分あたりのトークン数のレート制限\) が 230 万に設定されています。

Visual Studio Codeの移行ウィザードに戻り、モデル接続を構成します。

  1. Microsoft Foundry の詳細を入力します。
    • エンドポイント URL。
    • デプロイ名 (Microsoft Foundry のデプロイに割り当てた名前。基になるモデルは gpt-5.2 である必要があります)。
  2. 認証方法を選択してください:
    • API キー: Microsoft Foundry デプロイの API キーを入力します。
    • Microsoft Entra ID: Azure アカウント拡張機能を使用してサインインします。 このツールは認証トークンを自動的に取得します。 サインイン ID に、Microsoft Foundry リソースに対する Foundry User ロール (旧称 Azure AI User) があることを確認します。 詳細については、Microsoft Foundry の ロールベースのアクセス制御 を参照してください。
  3. [Microsoft Foundry の接続のテスト] を選択して、構成を確認します。
  4. 接続が成功したら、Create Migration Project を選択します。

手順 10: スキーマ変換を実行する

  1. システムは、移行ウィザードのメインに移動 します。

  2. [ 移行 ] を選択してスキーマ変換プロセスを開始します。

  3. Visual Studio Code インターフェイスで変換の進行状況を監視します。

  4. 変換が完了すると、プロジェクトに スキーマ変換が完了 と 変換の概要を確認 アクションが表示されます。

    抽出と変換の進行状況、および変換の概要の確認を含む、完了したスキーマ変換のスクリーンショット。

手順 11: スキーマ変換レポートを確認する

  1. スキーマ変換が完了すると、HTML 変換レポートが自動的に開きます。
  2. 検出、抽出、変換の結果とオブジェクト レベルのメモを確認します。
  3. レポートの解釈に関するガイダンスについては、Oracle スキーマ変換の HTML レポートを表示を参照してください。

手順 12: 変換されたオブジェクトを確認して調整する

  1. 完了した移行プロジェクトから、コンバージョンの概要を確認 を選択します。

    Conversion オブジェクト エクスプローラー、コンバージョン レポート、セットアップ命令のオブジェクト数とアクションを含む Conversion の概要のスクリーンショット。

  2. [ 変換の概要 ] ページで、[ 変換オブジェクト エクスプローラー] を選択します。

    ソース オブジェクトとターゲット オブジェクト、ステータス、および Ask アクションと Fix アクションを含む Conversion オブジェクト エクスプローラーのスクリーンショット。

  3. オブジェクトを選択して、Oracle と PostgreSQL の定義を比較し、その変換に関するメモを読みます。

    Oracle と PostgreSQL の定義を変換メモと並べて表示したスクリーンショット。

  4. Ask を使用して変換とその依存関係を説明したり、Fix を使用して Copilot プロンプト を開き、PostgreSQL ファイルを変更したりできます。

  5. 編集内容を確認し、デプロイする予定の修正がデプロイ SQL に含まれていることを確認してください。 オブジェクトごとのファイルを編集すると、生成された deploy.sqlが更新されると想定しないでください。

フィルター処理、比較、手動コンパイルの手順については、「Conversion オブジェクト エクスプローラーで変換されたオブジェクトを確認する」を参照してください。

手順 13: セットアップ エクスペリエンスを使用してデプロイを準備する

変換ワークフローでは、完了するとセットアップ ファイルが自動的に生成されます。 セットアップ手順を開いても、デプロイは開始されません。

  1. 完了した移行プロジェクトから、[ 変換の概要の確認] を選択します。
  2. [ 変換の概要 ] ページで、[ セットアップ手順] を選択します。 このアクションは、セットアップ ファイルの準備ができたときに使用できるようになります。
  3. 生成された setup_instructions.md ファイルを確認します。これはエディターで開きます。 Visual Studio Code では、エクスプローラーにセットアップ フォルダーも表示されます。
  4. セットアップ エクスペリエンスを使用した変換済みスキーマの展開を参照して、個別の非運用環境の移行先データベースを準備し、準備チェックを実行し、変換されたスキーマを展開し、展開結果を確認します。

手順 14: 運用環境で使用する前に、デプロイされたスキーマを検証する

前の手順でデプロイした非本番データベースは、変換スクラッチ データベースではなく、機能、データ、アプリケーションの検証に使用します。

展開後にオブジェクトを変更する場合は、修正を手動で適用してください。

  1. SQL エディターを非本番 PostgreSQL サーバーと、変換されたスキーマがデプロイされているデータベースに接続します。 エディターのアクティブなデータベースを確認します。
  2. スキーマ参照を確認し、実行しようとしている完全なステートメントを選択します。
  3. 再生ボタンを選択して、選択したステートメントのみを実行します。 続行する前に、実行出力を確認し、エラーを解決してください。
  4. 運用環境のデプロイの前に、オブジェクト ファイルとデプロイ SQL にテスト済みの修正が含まれていることを確認します。 ファイルの更新、展開されたオブジェクトの更新、 deploy.sql の更新は別のアクションです。

代表的なテスト データとアプリケーション ワークロードを使用して、デプロイされたスキーマを別途検証します。 Oracle ソースに対する依存関係、制約、ビジネス ロジック、および結果セットを確認し、修正後に再テストします。 変換の成功のみをテストするのではなく、変換またはデプロイされなかったオブジェクトを確認します。

Important

顧客の検証責任: スキーマ変換に使用されるのと同じ AI エンジンが、検証とレビューにも役立ちます。 AI システムは、独自のミスを確認することがあります。 データ損失、機能回帰、またはセキュリティの問題を防ぐために、運用環境にデプロイする前に、変換されたすべてのオブジェクトとオブジェクト レベルの修正を個別に検証します。 コントロールの一部として、有害な出力や望ましくない出力を減らすために、Microsoft Foundry コンテンツ フィルターを有効にすることを検討してください。 ガイダンスについては、「Microsoft Foundry Models のContent フィルター処理を参照してください。

Visual Studio Code 拡張機能の詳細については、Visual Studio Code および Cursor 向け PostgreSQL 拡張機能を参照してください。