Database Link(DB Link)是 Oracle 實現異構/同構資料庫間透明訪問的核心對象。本文提供完整的創建語法、參數說明與驗證方法,助您快速搭建跨服務器數據通道。
CREATE PUBLIC DATABASE LINK link_name
CONNECT TO remote_user IDENTIFIED BY "password"
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = remote_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = remote_service_name)
)
)';
| 子句 | 說明 | 示例 |
|---|---|---|
PUBLIC | 創建公共 DB Link,所有用戶可用;省略則為私有,僅創建者可用 | CREATE PUBLIC DATABASE LINK ... |
link_name | 本地引用的鏈接名稱,建議與遠端服務名一致 | ora9i_link |
CONNECT TO ... IDENTIFIED BY | 遠端資料庫認證用戶名/密碼,密碼建議加雙引號保留特殊字符 | CONNECT TO app_user IDENTIFIED BY "P@ssw0rd" |
USING '...' | 連接描述符,可直接寫 TNS 字串,或引用本地 tnsnames.ora 中的別名 | 見上方完整描述符 |
SERVICE_NAME | 遠端實例的服務名(推薦),而非 SID | ora9i |
若本地 tnsnames.ora 已配置遠端別名(如 REMOTE_DB),可簡寫為:
CREATE PUBLIC DATABASE LINK remote_link
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'REMOTE_DB';
SELECT * FROM dual@link_name;
SELECT * FROM remote_table@link_name WHERE rownum <= 10;
SELECT * FROM dba_db_links;
tnsnames.ora 解析、主機名/IP 可達性。DRIVING_SITE Hint 強制在遠端執行連接/聚合,減少網絡傳輸。SQLNET.ENCRYPTION_SERVER)。
掌握 Database Link 的創建與調優,能讓您輕鬆實現跨庫報表、異構遷移、多庫聯合查詢等業務場景,是 Oracle 分布式數據庫應用的基石。