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

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

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

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

  • スキーマ検出: このツールは、Oracle スキーマ オブジェクトを分析します。
  • AI 処理: Microsoft Foundry は互換性のあるオブジェクトを処理し、変換します。
  • 検証: 変換されたオブジェクトはスクラッチ データベースで検証されます。
  • タスクの確認: 手動による注意が必要なオブジェクトにフラグが設定されます。
  • 出力生成: 正常に変換されたオブジェクトは 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 データベースとフレキシブル サーバー Azure Database for PostgreSQLスクラッチの両方に最低限必要な特権があることを確認します。 Oracle アカウントでは、ツールでスキーマとコードを分析できるように、データ ビューとディクショナリ ビューへの読み取りアクセス権が必要です。 Azure Database for PostgreSQLスクラッチ アカウントは、検証のためにスキーマ、テーブル、およびその他のオブジェクトを作成できる必要があります。 可能な場合は、専用のサービス アカウントを使用します。 最小限の特権の原則に従います。 変換を開始する前に、DBA と連携して一時的な昇格された権限を付与し、接続とアクセスを検証します。

Oracle のソース特権

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

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

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

Azure Database for PostgreSQL フレキシブル サーバー (スクラッチ データベース) には、次の特権が必要です。

権限 Purpose
スキーマを作成する 検証スキーマを作成する
データベースに作成 検証用のデータベース オブジェクトを作成する
GRANT CONNECT ON DATABASEデータベースへの接続権限の付与 検証プロセスへの接続許可

ネットワークの要件

  • アウトバウンド接続: 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.oratnsnames.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 リソースに割り当てられます。

移行プロセス

このセクションでは、完全な移行ワークフローについて説明します。 PostgreSQL 拡張機能をインストールし、Oracle ソースおよび Azure Database for PostgreSQL ターゲットへの接続を作成してテストし、移行プロジェクトを開いて初期化し、スキーマ変換用に Microsoft Foundry を構成し、移行ウィザードを実行してスキーマを検出および変換し、スクラッチ データベースで変換されたオブジェクトを検証し、生成された PostgreSQL アーティファクトをターゲットに適用する前に、フラグ付き項目を確認または修正します。

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

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

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

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

    Oracle サーバーの構成のスクリーンショット。

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

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

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

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

    スクラッチ データベースの構成のスクリーンショット。

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

  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. [ テスト接続] を選択して構成を確認します。

  4. 接続が成功したら、Create Migration Project を選択します。

    言語モデルの構成のスクリーンショット。

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

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

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

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

    移行ステップの進行状況のスクリーンショット。

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

  1. スキーマ変換が完了すると、ツールによって スキーマ変換レポートが生成されます。
  2. 正常に変換されたオブジェクトとスキップされたオブジェクトを確認します。
  3. レポートには、コンバージョンの成功率が表示されます。

手順 11: 変換タスクを確認して絞り込む

  1. スキーマ変換が完了すると、ツールは注意が必要なオブジェクトの レビュー タスク を作成します。
  2. GitHub Copilot エージェント モードを使用してタスクを解決するか、スキーマを PostgreSQL に手動で変換します。
  3. 前のスキーマ変換ステートメントと新しく変換されたスキーマ変換ステートメントを比較します。
  4. タスクの優先順位、生成された SQL ファイル、出力フォルダーの詳細については、「Oracle のタスクと出力フォルダーを確認して、柔軟なサーバー スキーマ変換をAzure Database for PostgreSQLする」を参照してください。

手順 12: デプロイ前に変換されたオブジェクトを検証する

  1. 非運用環境で変換されたすべてのオブジェクトを個別に検証します。
  2. 依存関係、制約、および代表的なワークロードが想定どおりに動作することを確認します。
  3. すべてのレビュー タスクの解決策を確認し、変更後に再テストします。

Important

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

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