Oracle DBLinke+实体化视图同步两个数据库的数据
Oracle DBLinke+实体化视图同步两个数据库的数据
项目的新需求是同步两个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,从数据库中的物化视图会自动更新。