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

 

4)建立触发器:

在服务器甲中的数据库空间A下的TBL_TB下建立触发器,负责插入同步,触发器主体部分:

 

    
    
create or replace trigger rtest
after insert on testable
for each row
begin 

insert into TESTLINK  (something) values (:new.something);
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 ;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值