Oracle DBLinke+实体化视图 同步两个数据库的数据

牧云@^-^@ 提交于 2020-03-08 14:32:41

      项目的新需求是同步两个Oracle数据库的部分个,在实验环境现试通了几种方法,今天先把DbLink 加 实体化视图 同步数据的方法记录一下。

1、配置tnsnames.ora文件
指定到主数据库的网络名,实验环境为169db

2、在从数据库端给用户赋值相应的权限
grant create database link to repadmin; --创建dblink的权限。
grant create materialized view to repadmin; --创建物化视图的权限。

3、以repadmin身份登录从数据库。
connect repadmin/xxxx
--创建dblink
create database link 169dbLink connect to repadmin identified by xxxx using '169db';
--测试是否创建成功
select * from global_name@169dbLink;

4、在主数据库的表上创建物化视图日志,这个日志记录了主表的变化。
create materialized view log on pdata; 
--如果Pdata个没有主键,可以用rowid作为为主键。
create materialized view log on pdata with rowid;

5、在从数据库中创建物化视图。
create materialized view test refresh fast with primary key start with sysdate next sysdate+1/1440 as select * from pdata@169dblink;
--这里用的是fast自动刷新。 sysdate +1/1440 为每分钟刷新一次。

6、完成。
可以在主数据库对pdata表进行Insert或Update,从数据库中的物化视图会自动更新。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!