利用oracle快照实现两台数据库服务器表同步

使用快照实现两服务器表数据同步,只要你了解快照的原理及使用,那就简单了,咱们今天来看看具体操作步骤
例:源数据库A,目标数据库B,数据库B需要同步数据库A的表user,开干吧
1、给数据库B创建dblink;

create database link DB_LINK_TEST
  connect to ITS_L identified by ITSADMIN
  using 'orcl_fwq';

2、数据库A创建表user(B数据库无需创建)

3、在测试数据库B的dblink(下面语句能正常执行表示成功)

 select * from user@DB_LINK_TEST;

4、在数据库A中创建快照日志(当快照的刷新方式为 fast 的时候需要创建,具体刷新方式见最后说明)

  Create snapshot log on user;

5、在数据库B中创建相应的快照

Create snapshot user as select * from user@DB_LINK_TEST;

6、设置快照刷新时间,可定时触发

  Alter snapshot cross refresh fast Start with sysdate+1/1440 next sysdate+1/1440;
   设置快照刷新在一分钟后执行,并且每隔1分钟执行一次;
    一天的秒数=24小时*60分钟*60钞,应为oracle默认加减时间是天。

a、快速刷新
Alter snapshot sn_test_user refresh fast Start with sysdate next sysdate with primary key;
–oracle马上自动快速刷新,以后不停的刷新,只能在测试时使用.真实项目要正确权衡刷新时间.–+1/(2460)
b、完全刷新
Alter snapshot sn_test_user refresh complete Start with sysdate+30/(24
6060) next sysdate+30/(2460*60);
–oracle自动在30秒后进行第一次完全刷新,以后每隔30秒完全刷新一次
c、手动刷新快照(在没有自动刷新的情况下,可以手动刷新快照)
方式1:begin
dbms_refresh.refresh(‘sn_test_user’);
end;
方式2:
EXEC DBMS_SNAPSHOT.REFRESH(‘sn_test_user’,‘F’);

–9.查看快照最后一次刷新时间
SELECT NAME,LAST_REFRESH FROM ALL_SNAPSHOT_REFRESH_TIMES;

–10.查看快照下次执行时间
select last_date,next_date,what from user_jobs order by next_date;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值