龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

实现异地Oracle数据库的数据同步步骤

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
异地 Oracle 数据库的数据同步,行动的主要目的是在服务器甲的Oracle数据库的A里的表TBL_TB相关数据发生变化时,服务器乙的Oracle数据库B中的表TBL_TB也会随着发生相应变化.(假设两个表的结

异地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 B.TBL_TB@LINKMASTER2.Oracle.COM;  

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 ;

需要注意的是,服务器乙的防火墙一定要是关闭的,否则在建立连接的时候,会报超时错误。

精彩图集

赞助商链接