首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 異構服務 (Heterogeneous Services) 透明訪問 SQL Server 完整配置實戰

     編輯:Oracle 資料庫基礎

前言:數據庫層面的統一訪問網關

企業異構數據庫共存是常態。Oracle Heterogeneous Services (HS) 提供透明網關能力:通過 DB Link 直接用 Oracle SQL 查詢非 Oracle 數據源,無需應用層雙連接。本文實戰配置 Oracle 8.1.7 (Windows 2000) 通用連接 (ODBC) 訪問 SQL Server 2000。

一、 兩種連接模式對比

本文採用 通用連接 ODBC 模式。

二、 完整配置 7 步法

1. 驗證/安裝 HS 組件

-- 查詢 SYS 用戶下視圖確認
SELECT * FROM sys.hs_base_caps;
-- 不存在則從 Oracle 安裝介質安裝 HS 組件

2. 配置系統級 ODBC 數據源 (控制面板 → 管理工具 → 數據源 ODBC → 系統 DSN)

  • 名稱:dnsora2sql
  • 驅動:SQL Server ODBC Driver
  • 目標:SQL Server 2000 實例、數據庫、認證方式

3. 配置 tnsnames.ora ($ORACLE_HOME/network/admin)

LNK2SQL =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=1521)))
    (CONNECT_DATA =
      (SID = hs4sql)      -- 必須與 Listener SID_NAME 一致
      (HS = OK)           -- 關鍵:啟用異構服務
    )
  )

4. 配置 listener.ora ($ORACLE_HOME/network/admin)

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = hs4sql)              -- 與 tnsnames SID 一致
      (ORACLE_HOME = C:\Oracle\ora9201)
      (PROGRAM = hsodbc)               -- 關鍵:ODBC 代理程序 (OLE DB 用 hsole)
    )
  )

5. 重啟監聽器

LSNRCTL STOP
LSNRCTL START

6. 編輯 HS 初始化文件 ($ORACLE_HOME/hs/admin/iniths4sql.ora)

HS_FDS_CONNECT_INFO = dnsora2sql   -- 對應步驟 2 的系統 DSN 名
HS_FDS_TRACE_LEVEL = 0             -- 0=關閉, DEBUG=1/2/3

7. 創建 Database Link 並測試

CREATE DATABASE LINK ora2sql
CONNECT TO "sql1" IDENTIFIED BY "sql1"  -- SQL Server 登錄用戶/密碼
USING 'LNK2SQL';

-- 測試查詢
SELECT * FROM sysobjects@ora2sql;  -- 查詢 SQL Server 系統表
SELECT * FROM "user_table"@ora2sql; -- 查詢業務表 (雙引號保留大小寫)

三、 關鍵技術點與避坑

模式代理程序授權適用
透明網關Oracle 專用 (如 SQL Server 透明網關)需額外購買核心業務、高性能、分布式事務
通用連接ODBC / OLE DB (數據庫自帶)免費輕量級查詢、開發測試、成本敏感

四、 總結與架構定位

Oracle HS 通用連接 (ODBC/OLE DB) 以零授權成本、標準接口、透明 SQL 解決輕量級異構查詢需求。配置核心:**系統 DSN → tnsnames (HS=OK) → listener (hsodbc/hsole) → iniths.ora (DSN映射) → DB Link**。

架構選型:

  • 報表/同步/輕量查詢 → HS 通用連接
  • 核心業務/分布式事務/高性能/複雜類型 → 透明網關
  • 微服務/中台架構 → 應用層聚合 / CDC 同步至統一數據層 (現代首選)

掌握 HS 配置,讓 Oracle 成為企業數據的「統一查詢入口」,消除應用層多連接複雜度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
問題解決/說明
大小寫敏感SQL Server 表名大小寫取決於排序規則,Oracle DB Link 查詢建議雙引號保留大小寫:SELECT * FROM "MyTable"@link
數據類型映射HS 自動映射常見類型,複雜類型 (XML/空間/CLR) 可能需透明網關
事務支持通用連接 不支持分布式事務 (Two-Phase Commit),需透明網關 + 事務服務
性能單條 SQL 多一次網絡跳轉 + ODBC 轉換開銷,大結果集建議遠端建視圖/存儲過程預聚合
字符集確保 NLS_LANG / ODBC 驅動編碼一致,防亂碼