可以利用快照啊
1.创建快照log,在远程机器的源数据库:
create snapshot log on 表名;(该表应该具有主键)
2.创建数据库连接,在需要源数据的数据库中:
3.授权create any snapshot给当前用户
4.创建快照:
create snapshot s_test as select * from 表名@数据库连接名 where ....
5.根据需要修改快照刷新的间隔时间:
alter snapshot s_test refresh fast start with sysdate+1/1440 next sysdate+1/144;
{此SQL语句的意思为:设定oracle自动在1分钟(1/24*60)后进行第一次快速刷新,以后每隔10分钟(10/24*60)快速刷新一次。}
Alter snapshot s_test refresh complete Start with sysdate+1/2880 next sysdate+1;
{此SQL语句的意思为:设定oracle自动在30钞(30/24*60*60)后进行第一次完全刷新,以后每隔1天完全刷新一次。}
快照的刷新有两种方式:快速刷新和完全刷新。快速刷新需要快照的主表先有快照日志存在(参考第一步);完全刷新时oracle执行快照查询,将结果放入快照。快速刷新比完全刷新快,因为快速刷新将主数据库的数据经网络发送到快照的数据少,仅需传送主表中修改过的数据,而完全刷新要传送快照查询的全部结果。