
核心組件:
| 服務類型 | 功能 |
|---|---|
| 事務處理服務 | 支援分布式事務(兩階段提交),保證跨庫 ACID |
| SQL 服務 | 直接在 Oracle 執行針對非 Oracle 的 SELECT/INSERT/UPDATE/DELETE |
| 模式 | 代理程序 | 授權 | 適用場景 |
|---|---|---|---|
| 透明網關 | Oracle 專用(如 DG4MSQL、DG4DB2) | 需額外購買 | 高性能、高兼容、企業級生產 |
| 通用連接 | ODBC / OLE DB 驅動(隨 Oracle 附帶) | 免費 | 開發測試、輕量集成、異構數據源多 |
ODBC Data Source Administrator);$ORACLE_HOME/hs/admin/init.ora 配置:HS_FDS_CONNECT_INFO = dsn_nameHS_FDS_TRACE_LEVEL = 0listener.ora 註冊 HS 服務:(SID_DESC = (SID_NAME=hs_sid) (ORACLE_HOME=...) (PROGRAM=hsodbc))tnsnames.ora 添加服務名條目;CREATE DATABASE LINK dblink_name CONNECT TO "user" IDENTIFIED BY "pwd" USING 'tns_entry';SELECT * FROM table@dblink_name;-- 跨庫聯表查詢
SELECT o.order_id, c.cust_name
FROM orders@oracle_db o, customers@sqlserver_db c
WHERE o.cust_id = c.cust_id;
-- 異構同步(定時任務)
INSERT INTO oracle_tgt SELECT * FROM src_table@mysql_db
WHERE last_upd > (SELECT MAX(last_upd) FROM oracle_tgt);
DATETIME → Oracle TIMESTAMP);