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

Oracle 資料庫連結(Database Link)跨庫查詢完整指南

     編輯:Oracle 資料庫基礎

Oracle Database Link(DB Link)允許在一個資料庫(來源端)直接存取另一個資料庫(目標端)的物件,是跨實例查詢、資料同步、異構遷移的核心功能。本文說明建立、驗證與使用 DB Link 的完整步驟。

建立 Database Link

使用 CREATE DATABASE LINK 指令,需指定連線認證與 TNS 連線描述:

DROP DATABASE LINK orclAB;
CREATE SHARED DATABASE LINK orclAB
  CONNECT TO TargetUserName IDENTIFIED BY "TargetUser密碼"
  AUTHENTICATED BY TargetUserName IDENTIFIED BY "TargetUser密碼"
  USING '(DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.*.*.*)(PORT = 1521)))
    (CONNECT_DATA = (SERVICE_NAME = TargetServiceName))
  )';

參數說明

參數說明
orclAB自訂的 DB Link 名稱,來源端將以此名稱參考目標端物件
SHARED啟用共用伺服器連線,減少目標端 Process 數量,適合高併發場景
CONNECT TO / IDENTIFIED BY目標資料庫的登入帳號與密碼
AUTHENTICATED BY共用連線的額外驗證資訊(可與上同)
USINGTNS 連線字串,含 HOST IP、PORT、SERVICE_NAME

跨庫查詢語法

建立完成後,在來源端直接以 @dblink_name 後綴存取目標端資料表:

SELECT * FROM 目標資料表名@orclAB;

常見問題排查

  • ORA-12154 / ORA-12541:檢查來源端 tnsnames.ora 或 USING 字串中的 HOST/PORT/SERVICE_NAME 是否正確,並以 tnsping 測試連通性。
  • ORA-01017:確認目標端帳號密碼正確,且帳號未鎖定、過期。
  • 權限不足:目標端帳號需具備被查詢物件的 SELECT 權限。

最佳實務建議

  • 生產環境建議使用 SHARED 模式並搭配連線池,避免大量 Session 佔用目標端資源。
  • 敏感密碼勿硬編碼於程式碼,可改用 CREATE DATABASE LINK ... CONNECT TO CURRENT_USER 搭配全域使用者(Global User)或 Wallet 管理認證。
  • 定期監控 DBA_DB_LINKS 與 V$DBLINK,清理無用連結。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved