異構查詢架構
當 .NET 訂購系統需即時查詢舊版 Oracle 品管資料庫時,SQL Server 連結伺服器 提供分散式查詢能力。SQL Server 對 Oracle 而言是一個 Client,因此 SQL Server 主機必須安裝並配置 Oracle Client 軟體(Net8/Oracle Net)。
Oracle Client 安裝需求
- 支援 Oracle 7.3.4+ 版本
- 需 Oracle Net8 函式庫(SQL*Net 2.3.3.0.4+)
- SQL Server Enterprise Manager 設定連結伺服器時使用 Microsoft OLE DB Provider for Oracle
核心概念對照表
| SQL Server 概念 | Oracle 對應概念 | 說明 |
| Database Instance | Database (SID) | Oracle 安裝時指定的 SID 即資料庫名稱 |
| Database | Schema | Schema = 用戶帳號 = 該用戶擁有的所有物件集合 |
| Login/User | User/Schema | Oracle 每用戶一 Schema,Schema 名即用戶名 |
| Connection String | Host String / Service Name | TNSNAMES.ORA 中定義的服務名稱 |
Schema 澄清
原文提到「Schema 等同 SQL Server Database」略有誤導。正確理解:
- Schema = 單一用戶擁有的所有物件集合(表、視圖、索引等)
- 物件完整名稱:
SCOTT.EMP,SCOTT 為 Schema 名 = 用戶名
- Schema 物件儲存於 Tablespace,非直接對應檔案結構
連結伺服器設定步驟
- SQL Server 主機安裝 Oracle Client,配置
TNSNAMES.ORA 服務名稱
- 測試
TNSPING 服務名 確認網路連通
- Enterprise Manager → 安全性 → 連結伺服器 → 新增
- 提供者:Microsoft OLE DB Provider for Oracle
- 資料來源:TNS 服務名稱
- 登入認證:Oracle 用戶/密碼
- 測試查詢:
SELECT * FROM LINKED_ORA..SCOTT.EMP
常見問題排查
- PATH 環境變數順序:Oracle Client 路徑 必須在 SQL Server 路徑之後,否則載入錯誤 DLL 導致連結失敗
- 防火牆開放 Oracle Listener 埠(預設 1521)
- OLE DB Provider 版本相容性:優先使用 Oracle 官方
OraOLEDB.Oracle Provider
- 分散式交易需啟用 MSDTC,配置 Oracle XA 支援
Windows 服務驗證
安裝 Oracle Server 設定 SID=Ora817 後,系統服務列表會出現 OracleServiceORA817,確認服務啟動狀態。
- 上一篇文章: Oracle PCTUSED 參數深度解析:Freelist 機制、區塊鏈結與效能影響
- 下一篇文章: Oracle Net8 客戶端組態詳解:TNS、通訊協議與安裝精靈
Copyright ©
程式碼之家 All Rights Reserved