程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 實現異地Oracle數據庫的數據同步步驟

實現異地Oracle數據庫的數據同步步驟

編輯:Oracle數據庫基礎

異地Oracle數據庫的數據同步,行動的主要目的是在服務器甲的Oracle數據庫的A裡的表TBL_TB相關數據發生變化時,服務器乙的Oracle數據庫B中的表TBL_TB也會隨著發生相應變化.(假設兩個表的結構相同,都只含有ID,NAME兩列)。

執行步驟:

1)建立連接配置信息:在服務器甲的Oracle數據庫安裝目錄下的network/admin/tnsnames.ora添加一個連接服務器乙的連接:

  1. MASTER2 =  
  2. (DESCRIPTION =  
  3. (ADDRESS_LIST =  
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))  
  5. )  
  6. (CONNECT_DATA =  
  7. (SERVICE_NAME = master2)  
  8. )  
  9. )  

假設甲的ip地址是192.168.0.1而乙的是192.168.0.2並且乙中的Oracle數據庫服務名為master2端口號為1521

2)建立一個DBLINK:

  1. create public database link LINKMASTER2.Oracle.COM 

connect to 用戶名 --連接乙中Oracle數據庫所使用的用戶名我們這次該填寫B

identifIEd by "密碼" --密碼(雙引號不用去掉)

  1. using 'MASTER2'; 

3)建立同義詞:為了方便我們使用,我們來建立一個同義詞

  1. create or replace synonym TESTLINK  
  2. for [email protected];  

4)建立觸發器:

在服務器甲中的數據庫空間A下的TBL_TB下建立觸發器,負責插入同步,觸發器主體部分:

  1. begin  
  2. insert into TESTLINK (id,name) values (:new.id,:new.name);  
  3. end;  

在服務器甲中的Oracle數據庫空間A下的TBL_TB下建立觸發器,負責修改同步,觸發器主體部分:

  1. begin  
  2. update TESTLINK set id=:new.id,name=:new.name where id= :old.id;  
  3. end;  

假設ID列是唯一的

行動總結報告:

第2)和3)步驟,應該是在服務器甲的數據用戶A的環境下來執行的sql語句。

建立了同義詞後,就可以直接使用查詢異地數據庫的表格內容了:select * from TESTLINK ;

需要注意的是,服務器乙的防火牆一定要是關閉的,否則在建立連接的時候,會報超時錯誤。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved