Oracle Database Link(DB Link)允許在一個資料庫(來源端)直接存取另一個資料庫(目標端)的物件,是跨實例查詢、資料同步、異構遷移的核心功能。本文說明建立、驗證與使用 DB 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 | 共用連線的額外驗證資訊(可與上同) |
| USING | TNS 連線字串,含 HOST IP、PORT、SERVICE_NAME |
建立完成後,在來源端直接以 @dblink_name 後綴存取目標端資料表:
SELECT * FROM 目標資料表名@orclAB;
tnsnames.ora 或 USING 字串中的 HOST/PORT/SERVICE_NAME 是否正確,並以 tnsping 測試連通性。SELECT 權限。CREATE DATABASE LINK ... CONNECT TO CURRENT_USER 搭配全域使用者(Global User)或 Wallet 管理認證。DBA_DB_LINKS 與 V$DBLINK,清理無用連結。