oracle数据同步

来源:互联网 发布:网络问题在线咨询 编辑:程序博客网 时间:2024/05/17 23:48

如何在两台oracle数据库服务器之间实现数据的同步,可以使用oracle的物化视图来实现:

假设现在有内外网两台服务器,数据是从内网服务器同步到外网

1.首先应该建立数据库链接DBLINK

      在外网服务器执行

       create database link linkfwq 
   connect to fzept identified by neu 
   using '(DESCRIPTION = 
   (ADDRESS_LIST = 
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521)) 
   ) 
   (CONNECT_DATA = 
   (SERVICE_NAME = fjept) 
   ) 
   )'; 
  host=数据库的ip地址,service_name=数据库的ssid。

这样就建好了内外网数据库之间的DBLINk

2.然后 在内网服务器建立测试表test,建立物化视图日志,执行语句  CREATE MATERIALIZED VIEW LOG ON TEST;

3.在外网服务器上建立物化视图

CREATE MATERIALIZED VIEW 物化视图的名字
   REFRESH FAST START WITH SYSDATE 
   NEXT  SYSDATE + 1/48  下次刷新的时间
   WITH PRIMARY KEY 
   AS SELECT * FROM 源表名@DateLink的名称;  
   此方法需要原表中必须存在逐渐,通过主键监控记录表的LOG.

4.开启JOB来定时刷新数据

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0;
等一会之后在执行:

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20;