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

Oracle Database Link 建立完整步驟與測試驗證指南

     編輯:Oracle 資料庫基礎

測試環境規劃

項目本地 (新疆分公司)遠端 (北京總部)
IP192.168.1.100192.168.1.101
SIDSIDXJSIDBJ
用戶/密碼userxj / xj123userbj / bj123
OS / Oracle 版本WinXP / Oracle 8.1.7WinXP / Oracle 8.1.7

目標:在本地 SIDXJ 下以 userxj 身份,透過 DB Link 存取遠端 SIDBJ 的 userbj 物件。

前置檢查

1. 確認 Global Name

SELECT * FROM global_name;
-- 本地回傳:SIDXJ
-- 遠端回傳:SIDBJ.US.ORACLE.COM

2. 檢查 GLOBAL_NAMES 參數

SHOW PARAMETER global_names;
-- NAME: global_names  TYPE: boolean  VALUE: TRUE
-- 為 TRUE 時,DB Link 名稱必須 = 遠端 Global Name

3. 確認 Advanced Replication 支援 (可選)

SELECT * FROM v$option WHERE parameter = 'Advanced replication';
-- VALUE = TRUE 表示支援

建立步驟

1. 本地建立 TNS 別名指向遠端

tnsnames.ora 新增:

tns_xj_to_bj =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
    (CONNECT_DATA = (SID = SIDBJ))
  )

測試:tnsping tns_xj_to_bj 成功。

2. 遠端建立測試表並插入資料

CONNECT userbj/bj123@SIDBJ
CREATE TABLE userbj.bj_test (stu_id NUMBER, stu_name VARCHAR2(100));
INSERT INTO bj_test VALUES (1, '鐘德榮');
COMMIT;

3. 本地建立 Database Link

CONNECT userxj/xj123@SIDXJ
CREATE DATABASE LINK "SIDBJ.US.ORACLE.COM"
  CONNECT TO userbj IDENTIFIED BY bj123
  USING 'tns_xj_to_bj';

關鍵點:Link 名稱雙引號保留大小寫,必須與遠端 GLOBAL_NAME 完全一致。

4. 測試連線

SELECT * FROM dual@"SIDBJ.US.ORACLE.COM";
-- 回傳 DUMMY = X 表示成功

5. 查詢遠端業務表

SELECT * FROM userbj.bj_test@"SIDBJ.US.ORACLE.COM";
-- 回傳 1, '鐘德榮'

常見錯誤與解決

錯誤代碼原因解決
ORA-12154TNS 別名解析失敗檢查 tnsnames.ora 拼寫、tnsping 通訊
ORA-12514Listener 不識別 SID/Service遠端 listener.ora 確認 SID_NAME、服務已註冊
ORA-02019DB Link 名稱不符 GLOBAL_NAMES=TRUE 要求Link 名稱改為遠端 Global Name (含域名)
ORA-01017遠端帳號/密碼錯誤確認 CONNECT TO IDENTIFIED BY
ORA-02085連結資料庫版本不相容確認雙端版本相容性矩陣

防火牆提醒

Windows XP 需關閉防火牆或開放 TCP 1521,否則 ping 通但 tnsping/連線失敗。

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