以下的文章主要介紹的是Oracle建立DBLINK的實際操作步驟的經驗總結,我們首先建立了其相關的測試條件,你如果對其有興趣的話你就可以點擊以下的文章進行觀看了。 下面就是文章的具體內容介紹。
測試條件:
假設某公司總部在北京,新疆有其下屬的一個分公司。在本次測試中,新疆的計算機為本地計算機,即本要的IP地址為:192.168.1.100
北京的總部有一個集中的數據庫,其SID是SIDBJ,用戶名:userbj,密碼:bj123,北京的IP地址是:192.168.1.101。
在本地(新疆)的分公司也有一個數據庫,其SID是SIDXJ,用戶:userxj,密碼:xj123,新疆的IP地址是:192.168.1.100。
要將本地新疆的SIDXJ數據庫中訪問到北京的數據庫SIDBJ中的數據。
也就是說,在sidxj的數據庫中,用戶userxj(192.168.1.100)需要Oracle建立DBLINK,以userbj的用戶身份訪問sidBJ(192.168.1.101)中的數據。
測試環境:兩個數據庫均建立在WINXP上,ORACLE的版本均為Oracle817
建立環境時,要注意關閉兩台計算機上的Windows的防火牆,否則,會出現能ping通,但Oracle連接不通的情況。
1、問:如何返回數據庫的GLOBAL_NAME?
執行
- SELECT * FROM GLOBAL_NAME;
北京的數據庫的GLOBAL_NAME為SIDBJ.US.Oracle.COM
新疆的數據庫的GLOBAL_NAME為SIDXJ
2、問:如何查看Global_name參數是true還是False?
答:執行:
- SQL> show parameter global_name;
執行的結果如下:
- NAME TYPE VALUE
- global_names boolean TRUE
表示該參數是true.
Oracle建立DBLINK時該參數為true時,你在本地建立的DBLINK的名稱必須和遠程的Global_name一致才行。
3、問:查看遠程數據徊是否支持高級復制功能。
答:通過查看v$option視圖,如果其中Advanced replication為TRUE,則支持高級復制功能;否則不支持。
執行語句為:
- select * from v$option;
也可以執行select * from v$option where PARAMETER='Advanced replication'語句,
如何返回值為True,那麼就是支持,否則就是不支持。在兩個數據庫中都是檢查是否支持才行。
建立步驟:
1、在本地建立一個Oracle的客戶端連接tns_xj_to_bj,用於連接北京的數據庫。
在北京的數據庫中,建立一個表用於測試。
- create table USERBJ.BJ_TEST
- (
- STU_ID NUMBER,
- STU_NAME VARCHAR2(100)
- )
在其中增加一條記錄:
+
- insert into BJ_TEST (STU_ID, STU_NAME)
- values (1, '鐘德榮');
2、新建一個連接tnsxj,用於連接本地的sidxj數據庫,以tnsxj/userxj/xj123登錄到PLSQL中。
下面開始創建連接到北京的遠程數據連接DBLink。
- create database link SIDBJ.US.Oracle.COM connect to userbj identifIEd by bj123 using 'tns_xj_to_bj';
其中:SIDBJ.US.Oracle.COM是遠程的數據庫的global_name,userbj是連接SIDBJ的用戶名,bj123是userbj的密碼,
tns_xj_to_bj是本地建立的連接到北京的數據庫的服務名。
3、測試連接是否成功:
- select * from [email protected]
如果返回結果如下則表示連接成功了。
- DUMMY
- -----
- X