實(shí)現(xiàn)異地Oracle數(shù)據(jù)庫的數(shù)據(jù)同步步驟
異地Oracle數(shù)據(jù)庫的數(shù)據(jù)同步,行動(dòng)的主要目的是在服務(wù)器甲的Oracle數(shù)據(jù)庫的A里的表TBL_TB相關(guān)數(shù)據(jù)發(fā)生變化時(shí),服務(wù)器乙的Oracle數(shù)據(jù)庫B中的表TBL_TB也會(huì)隨著發(fā)生相應(yīng)變化.(假設(shè)兩個(gè)表的結(jié)構(gòu)相同,都只含有ID,NAME兩列)。
執(zhí)行步驟:
1)建立連接配置信息:在服務(wù)器甲的Oracle數(shù)據(jù)庫安裝目錄下的network/admin/tnsnames.ora添加一個(gè)連接服務(wù)器乙的連接:
- MASTER2 =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = master2)
- )
- )
假設(shè)甲的ip地址是192.168.0.1而乙的是192.168.0.2并且乙中的Oracle數(shù)據(jù)庫服務(wù)名為master2端口號(hào)為1521
2)建立一個(gè)DBLINK:
- create public database link LINKMASTER2.Oracle.COM
connect to 用戶名 --連接乙中Oracle數(shù)據(jù)庫所使用的用戶名我們這次該填寫B(tài)
identified by "密碼" --密碼(雙引號(hào)不用去掉)
- using 'MASTER2';
3)建立同義詞:為了方便我們使用,我們來建立一個(gè)同義詞
- create or replace synonym TESTLINK
- for B.TBL_TB@LINKMASTER2.Oracle.COM;
4)建立觸發(fā)器:
在服務(wù)器甲中的數(shù)據(jù)庫空間A下的TBL_TB下建立觸發(fā)器,負(fù)責(zé)插入同步,觸發(fā)器主體部分:
- begin
- insert into TESTLINK (id,name) values (:new.id,:new.name);
- end;
在服務(wù)器甲中的Oracle數(shù)據(jù)庫空間A下的TBL_TB下建立觸發(fā)器,負(fù)責(zé)修改同步,觸發(fā)器主體部分:
- begin
- update TESTLINK set id=:new.id,name=:new.name where id= :old.id;
- end;
假設(shè)ID列是***的
行動(dòng)總結(jié)報(bào)告:
第2)和3)步驟,應(yīng)該是在服務(wù)器甲的數(shù)據(jù)用戶A的環(huán)境下來執(zhí)行的sql語句。
建立了同義詞后,就可以直接使用查詢異地?cái)?shù)據(jù)庫的表格內(nèi)容了:select * from TESTLINK ;
需要注意的是,服務(wù)器乙的防火墻一定要是關(guān)閉的,否則在建立連接的時(shí)候,會(huì)報(bào)超時(shí)錯(cuò)誤。
【編輯推薦】