我們今天主要和大家講述的是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)需要建立DBLINK,以userbj的用戶身份訪問sidBJ(192.168.1.101)中的數據。
測試環境:兩個數據庫均Oracle建立在WINXP上,ORACLE的版本均為Oracle817
Oracle建立環境時,要注意關閉兩台計算機上的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.
該參數為true時,你在本地Oracle建立的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,用於連接北京的數據庫。
在北京的數據庫中,Oracle建立一個表用於測試。
- 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是本地Oracle建立的連接到北京的數據庫的服務名。
3、測試連接是否成功:
- select * from [email protected]
如果返回結果如下則表示連接成功了。
- DUMMY
- -----
- X
上述的相關內容就是對Oracle建立DBLINK的詳細步驟記錄的描述,希望會給你帶來一些幫助在此方面。