背景
異構資料庫互聯在 SQL Server 稱為 Linked Server (連結伺服器),透過 OLE DB Provider 串接 ODBC Driver 實現。本文記錄 SQL Server 2000 連接 DB2 7.2 的標準化部署流程 (Windows 2000 Server 環境),原理通用於新版本。
測試環境
- OS: Windows 2000 Server (繁體中文版)
- DB: SQL Server 2000 (英文版) + DB2 7.2 Client (英文版)
步驟 1:安裝 DB2 Client
目標機器必須安裝 IBM DB2 Client (含 ODBC Driver、OLE DB Provider)。
步驟 2:設定 Windows ODBC 系統資料來源
- 控制台 → 系統管理工具 → 資料來源 (ODBC) → 系統 DSN 標籤 → 新增。
- 選擇 IBM DB2 ODBC DRIVER。
- 資料來源名稱:自訂 (如
DB2TEST)。
- 資料庫名稱:必填 (對應 DB2 端 Database Alias)。
- 完成 → 選擇該 DSN → 設定 → 跳出 DB2 Messages 視窗 → Yes 連線測試。
- 輸入 DB2 使用者帳號/密碼,連線模式預設 SHARE → 確定。
ODBC 連通性驗證完成。
步驟 3:SQL Server 企業管理器建立連結伺服器
- 企業管理器 → 安全性 → 連結伺服器 → 右鍵 新增連結伺服器。
- 一般 頁籤:
- 連結伺服器名稱:自訂 (如
LK_DB2)。
- 伺服器類型:其他資料來源。
- 提供者名稱:IBM OLE DB Provider for DB2 SERVERS。
- 資料來源:填入步驟 2 的 ODBC DSN 名稱 (
DB2TEST)。
- 提供者字串:
User ID=db2user;Password=db2pwd (或 UID=...;PWD=...),對應 DB2 實際帳號。
- 安全性 頁籤:
- 選擇 使用此安全性內容 (Be made using this security context)。
- 輸入 DB2 遠端登入帳號/密碼 (與提供者字串一致或不同視需求)。
- 伺服器選項 頁籤:預設即可。
- 確定建立。
步驟 4:驗證與查詢
- 企業管理器 → 連結伺服器
LK_DB2 → 資料表 → 右側顯示 DB2 使用者擁有的所有表名。
- 實際查詢需在 查詢分析器 使用四部份命名:
SELECT * FROM [LK_DB2]..[DB2_SCHEMA].[TABLE_NAME];
常見坑點
| 現象 | 原因 | 解決 |
| 「找不到提供者」 | 未安裝 IBM OLE DB Provider 或版本不符 | 重裝 DB2 Client、確認 Provider 註冊 |
| ODBC 測試通過但連結伺服器失敗 | 提供者字串帳號/密碼錯誤、大小寫、特殊字元 | 用 UDL 檔測試 OLE DB 連線獨立驗證 |
| 查詢中文亂碼 | 字碼頁/排序規則不匹配 | 設定提供者字串 CCSID=... 或 DB2 端一致 |
連結伺服器雖方便,但跨網路延遲、分散式交易複雜度高,生產環境建議評估 SSIS/資料同步/微服務 API 等替代方案。