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

Oracle Database Link 跨服務器訪問配置全步驟

     編輯:Oracle 資料庫基礎

建立 Oracle Database Link 實現跨庫查詢與同步

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遠端實例的服務名(推薦),而非 SIDora9i

三、簡化寫法(使用本地 TNS 別名)

若本地 tnsnames.ora 已配置遠端別名(如 REMOTE_DB),可簡寫為:

CREATE PUBLIC DATABASE LINK remote_link
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'REMOTE_DB';

四、驗證與測試

  1. 基本連通性:
    SELECT * FROM dual@link_name;
  2. 跨庫查詢業務表:
    SELECT * FROM remote_table@link_name WHERE rownum <= 10;
  3. 檢查 DB Link 狀態:
    SELECT * FROM dba_db_links;

五、常見問題與優化建議

  • ORA-12154 / ORA-12545:檢查遠端監聽器、防火牆、tnsnames.ora 解析、主機名/IP 可達性。
  • ORA-01017:確認遠端用戶名/密碼正確,注意大小寫與特殊字符轉義。
  • 性能優化:
    • 使用 DRIVING_SITE Hint 強制在遠端執行連接/聚合,減少網絡傳輸。
    • 遠端表建立適當索引,避免全表掃描產生大量網絡流量。
    • 批量操作優先考慮物化視圖或 GoldenGate 等異步同步方案。
  • 安全性:避免在 DB Link 中使用高權限賬號;生產環境建議啟用 SSL/TLS 加密連接(配置 SQLNET.ENCRYPTION_SERVER)。

Database Link 配置示例

掌握 Database Link 的創建與調優,能讓您輕鬆實現跨庫報表、異構遷移、多庫聯合查詢等業務場景,是 Oracle 分布式數據庫應用的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved