教學課程:Oracle 至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的結構描述轉換

本教學將引導你如何利用 Visual Studio Code PostgreSQL 擴充功能搭配 Microsoft Foundry ,將 Oracle 資料庫架構轉換為 適用於 PostgreSQL 的 Azure 資料庫,以自動化並驗證架構轉換。

內容涵蓋連接 Oracle 原始碼與 適用於 PostgreSQL 的 Azure 資料庫 目標、配置 Microsoft Foundry、執行遷移精靈,以及檢視產生的 PostgreSQL 產物。 在開始之前,請確保你擁有伺服器和 Microsoft Foundry 部署的網路存取權限和憑證。

以下是你在轉換過程中可以期待的內容:

  • 架構發現:該工具會分析你的 Oracle 架構物件。
  • AI 處理:Microsoft Foundry 處理並轉換相容物件。
  • 驗證:轉換後的物件會在 scratch 資料庫中進行驗證。
  • 審查任務:需要手動注意的物件會被標記。
  • 輸出產生:成功轉換的物件會儲存為 PostgreSQL 檔案。

先決條件

本節說明在開始轉換前,使用 Oracle 到 適用於 PostgreSQL 的 Azure 資料庫 架構轉換功能的前提條件。

系統需求

類別 詳細資料
Visual Studio Code 版本 1.95.2 或更新版本
GitHub Copilot 訂閱 Pro+、商業、企業

作業系統支援

作業系統 支援資訊
Windows 僅限 x64 架構
Linux x64 架構
macOS macOS 13+

適用於 PostgreSQL 的 Azure 資料庫 目標需求

組件 版本需求
適用於 PostgreSQL 的 Azure 資料庫 PostgreSQL 版本 15 或更新版本
Scratch 資料庫 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

AI 模型需求

你需要設定以下其中一個 AI 元件:

AI 元件 型號版本
Microsoft 鑄造廠 GPT-5.2 部署

Microsoft Foundry 部署設定

在 Microsoft Foundry 中,建立使用 gpt-5.2 模型的部署。 部署名稱是你建立部署時所選擇的名稱;不一定要和型號名稱一樣。

端點是你的 Microsoft Foundry 資源網址。 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

若要透過 Azure API 管理 路由 Microsoft Foundry 流量以實現集中治理、限速與可觀察性,請在 Foundry 資源前設置 AI 閘道,並以閘道網址作為端點。 欲了解更多資訊,請參閱 Foundry 資源中的「配置 AI 閘道」。

所需的資料庫權限

在執行結構轉換前,請確保你使用的帳號在原始 Oracle 資料庫和 Scratch 的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器上都擁有最低要求的權限。 Oracle 帳號需要對資料和字典視圖的讀取權限,才能分析結構與程式碼。 適用於 PostgreSQL 的 Azure 資料庫 臨時帳號必須能夠建立結構、表格及其他物件以供驗證。 盡可能使用專用服務帳號。 遵循最低權限原則。 與你的 DBA 協調,授予任何臨時的提升權限,並在開始轉換前驗證連線與存取。

源 Oracle 權限

原始 Oracle 資料庫所需的最低權限如下:

特權 Purpose
CONNECT 基本資料庫連線
SELECT_CATALOG_ROLE 存取資料字典視圖
選擇任何字典 讀取系統元資料與字典物件
選擇 SYS.ARGUMENT$ 存取程序與函式參數資訊

Scratch 資料庫權限

以下權限是 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器(scratch database)所必需的:

特權 Purpose
建立架構 建立驗證結構
在資料庫上建立 建立資料庫物件以進行驗證
在資料庫上授與連線權限 驗證程序的連線權限

網路要求

  • 出站連線:Microsoft Foundry 端點。
  • 資料庫連線能力:來源 Oracle 與目標 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器都必須可連線。
  • 透過 HTTPS 存取:Visual Studio Code 延伸模組市集與 GitHub Copilot 服務。
  • GitHub 儲存庫存取https://github.com/microsoft/pgsql-tools/.

Oracle Instant Client (用於完整用戶端模式)

結構描述轉換工具預設會使用精簡用戶端模式連線至 Oracle,因此不需要額外軟體。 如果你的環境需要厚用戶端模式,可以在執行 Visual Studio Code 的機器上安裝 Oracle 即時客戶端。 工具會讀取你的 sqlnet.oratnsnames.ora 設定,並在某項設定需要時自動切換到完整模式。

你可以透過檢查來源環境中的 Oracle 網路設定檔來判斷是否需要厚用戶端模式。 請在檔案中尋找以下參數 sqlnet.ora (通常位於 $ORACLE_HOME/network/admin/此處):

參數 表示需要厚模式
SQLNET.CRYPTO_CHECKSUM_CLIENT 設定為 REQUIREDREQUESTED 以原生網路加密
SQLNET.ENCRYPTION_CLIENT 設定為 REQUIREDREQUESTED 以原生網路加密

Microsoft Foundry 認證

為 Microsoft Foundry 設定以下其中一種認證方法:

驗證方法 Requirements
API 金鑰 Microsoft Foundry 端點網址與 API 金鑰。
Microsoft Entra 身份識別 已登入 Azure Account 擴充功能,並已在 Microsoft Foundry 資源上指派 Foundry 使用者角色(前稱 Azure AI 使用者)。

移轉程序

本節將逐步介紹完整的遷移工作流程。 你會安裝 PostgreSQL 擴充功能、建立並測試對 Oracle 來源和 適用於 PostgreSQL 的 Azure 資料庫 目標的連線、開啟並初始化移轉專案、設定 Microsoft Foundry 以進行結構描述轉換、執行移轉精靈來探索並轉換結構描述、在暫存資料庫中驗證已轉換的物件,並在將產生的 PostgreSQL 成品套用至目標之前,檢閱或修正任何已標示的項目。

步驟 1:安裝 PostgreSQL Visual Studio Code 擴充功能

  1. 打開 Visual Studio 程式碼。

  2. 前往 擴充功能 檢視(Ctrl+Shift+X)。

  3. 搜尋 PostgreSQL,並安裝由 Microsoft 發布的 PostgreSQL 擴充功能。

    1. 應用程式市集下載

    在 Visual Studio Code 安裝 PostgreSQL 擴充功能的截圖。

步驟 2:建立 適用於 PostgreSQL 的 Azure 資料庫 的連線

  1. 在 PostgreSQL 延伸模組面板中,建立與您的 適用於 PostgreSQL 的 Azure 資料庫 flexible server 執行個體的連線。

  2. 輸入連線資訊(主機、資料庫、使用者名稱、密碼)。

  3. 測試並儲存連線。

    新增 適用於 PostgreSQL 的 Azure 資料庫 連線的螢幕擷取畫面。

步驟三:開啟新工作區

  1. 在你的本機電腦上建立一個新資料夾來進行遷移專案。

  2. 在Visual Studio Code中以 new workspace 開啟該資料夾。

    在 Visual Studio Code 新增工作區的截圖。

步驟 4:初始化遷移專案

  1. 打開 PostgreSQL 擴充功能

  2. 前往 遷移 面板。

  3. 選擇 建立移轉專案

    建立新遷移專案的截圖。

步驟 5:設定專案設定

  1. 遷移精靈中輸入 你的專案名稱

  2. 選取 下一步 以繼續。

    專案名稱截圖。

步驟 6:設定 Oracle 連線

  1. 輸入您的 Oracle 連線資訊

    • 主機或伺服器名稱。
    • 連接埠號碼。
    • 資料庫或服務名稱。
    • 用戶名和密碼。

    這個工具會自動從你的 sqlnet.ora 設定 tnsnames.ora 中選擇精簡或厚的客戶端模式;介面不會顯示手動選擇器。 預設使用精簡模式。 如果您的sqlnet.ora需要 thick 模式,請在繼續之前,確認已安裝 Oracle Instant 客戶端,且其位置已加入PATH環境變數。 欲了解更多資訊,請參閱 Oracle 即時客戶端

  2. 選擇 載入結構。 該工具會測試 Oracle 連線,若成功,會列出 Oracle 中所有可用的使用者定義架構。

  3. 選擇一個或多個結構模式來轉換成 PostgreSQL。

  4. 選取 下一步 以繼續。

    配置 Oracle 伺服器的截圖。

步驟 7:設定 Azure database for PostgreSQL 暫存資料庫

  1. 選擇你在 PostgreSQL 擴充中定義的 適用於 PostgreSQL 的 Azure 資料庫 連線

  2. 從下拉選單中選擇 目標資料庫

  3. 選取 下一步 以繼續。

    設定 scratch 資料庫的截圖。

步驟 8:配置 Microsoft Foundry 語言模型

  1. 輸入您的Microsoft Foundry 詳情

    • 端點網址。
    • 部署名稱(你在 Microsoft Foundry 中分配給部署名稱;底層模型必須是 gpt-5.2)。
  2. 選擇 認證方式

    • API 金鑰:輸入 Microsoft Foundry 部署的 API 金鑰。
    • Microsoft Entra ID:使用 Azure Account 擴充功能登入。 該工具會自動取得認證憑證。 請確保登入的身份在 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 Agent 模式來解決這些任務,或手動將結構轉換成 PostgreSQL。
  3. 比較之前和新轉換的結構轉換語句。
  4. 欲了解更多關於任務優先順序、產生的 SQL 檔案及輸出資料夾的資訊,請參閱檢視 Oracle 至 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器架構轉換的任務與輸出資料夾

步驟 12:部署前驗證已轉換的物件

  1. 在非生產環境中獨立驗證所有轉換物件。
  2. 確認相依關係、限制與代表性工作負載是否如預期般運作。
  3. 檢視所有審查任務的決議,並在修改後重新測試。

Important

客戶驗證責任:用於結構轉換的同一個 AI 引擎也能協助驗證與審查。 AI 系統偶爾會確認自己的錯誤。 為防止資料遺失、功能回歸或安全問題,請在部署到生產環境前獨立驗證所有轉換物件並審查任務解析。 作為控制措施的一部分,建議啟用 Microsoft Foundry 內容過濾功能,以減少有害或不想要的輸出。 相關指引請參閱 Content filtering for Microsoft Foundry Models

欲了解更多關於 Visual Studio Code 擴充功能的資訊,請造訪 Visual Studio Code 與游標的 PostgreSQL 擴充功能