本教學將引導你如何利用 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.comhttps://{your-resource}.openai.azure.comhttps://{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.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 設定以下其中一種認證方法:
| 驗證方法 | 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 擴充功能
打開 Visual Studio 程式碼。
前往 擴充功能 檢視(
Ctrl+Shift+X)。搜尋 PostgreSQL,並安裝由 Microsoft 發布的 PostgreSQL 擴充功能。
步驟 2:建立 適用於 PostgreSQL 的 Azure 資料庫 的連線
在 PostgreSQL 延伸模組面板中,建立與您的 適用於 PostgreSQL 的 Azure 資料庫 flexible server 執行個體的連線。
輸入連線資訊(主機、資料庫、使用者名稱、密碼)。
測試並儲存連線。
步驟三:開啟新工作區
步驟 4:初始化遷移專案
步驟 5:設定專案設定
步驟 6:設定 Oracle 連線
輸入您的 Oracle 連線資訊:
- 主機或伺服器名稱。
- 連接埠號碼。
- 資料庫或服務名稱。
- 用戶名和密碼。
這個工具會自動從你的
sqlnet.ora設定tnsnames.ora中選擇精簡或厚的客戶端模式;介面不會顯示手動選擇器。 預設使用精簡模式。 如果您的sqlnet.ora需要 thick 模式,請在繼續之前,確認已安裝 Oracle Instant 客戶端,且其位置已加入PATH環境變數。 欲了解更多資訊,請參閱 Oracle 即時客戶端。選擇 載入結構。 該工具會測試 Oracle 連線,若成功,會列出 Oracle 中所有可用的使用者定義架構。
選擇一個或多個結構模式來轉換成 PostgreSQL。
選取 下一步 以繼續。
步驟 7:設定 Azure database for PostgreSQL 暫存資料庫
步驟 8:配置 Microsoft Foundry 語言模型
輸入您的Microsoft Foundry 詳情:
- 端點網址。
- 部署名稱(你在 Microsoft Foundry 中分配給部署名稱;底層模型必須是
gpt-5.2)。
選擇 認證方式:
- API 金鑰:輸入 Microsoft Foundry 部署的 API 金鑰。
- Microsoft Entra ID:使用 Azure Account 擴充功能登入。 該工具會自動取得認證憑證。 請確保登入的身份在 Microsoft Foundry 資源中擁有 Foundry User 角色(前稱 Azure AI User)。 欲了解更多資訊,請參閱 Microsoft Foundry 的 基於角色的存取控制。
選擇 測試連線 以驗證設定。
連線成功後,選擇 Create Migration Project。
步驟 9:執行結構轉換
步驟 10:檢視結構轉換報告
- 結構轉換完成後,工具會產生 結構轉換報告。
- 檢視成功轉換的物件和跳過的物件。
- 報告顯示轉換成功率。
步驟 11:檢視並精煉轉換任務
- 結構轉換完成後,工具會為需要注意的物件建立 審查任務 。
- 使用 GitHub Copilot Agent 模式來解決這些任務,或手動將結構轉換成 PostgreSQL。
- 比較之前和新轉換的結構轉換語句。
- 欲了解更多關於任務優先順序、產生的 SQL 檔案及輸出資料夾的資訊,請參閱檢視 Oracle 至 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器架構轉換的任務與輸出資料夾。
步驟 12:部署前驗證已轉換的物件
- 在非生產環境中獨立驗證所有轉換物件。
- 確認相依關係、限制與代表性工作負載是否如預期般運作。
- 檢視所有審查任務的決議,並在修改後重新測試。
Important
客戶驗證責任:用於結構轉換的同一個 AI 引擎也能協助驗證與審查。 AI 系統偶爾會確認自己的錯誤。 為防止資料遺失、功能回歸或安全問題,請在部署到生產環境前獨立驗證所有轉換物件並審查任務解析。 作為控制措施的一部分,建議啟用 Microsoft Foundry 內容過濾功能,以減少有害或不想要的輸出。 相關指引請參閱 Content filtering for Microsoft Foundry Models。
欲了解更多關於 Visual Studio Code 擴充功能的資訊,請造訪 Visual Studio Code 與游標的 PostgreSQL 擴充功能。