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















 
 
 

 
 
 
 