dblink+物化视图同步两个数据库的表数据
主从库都有download用户 注意:
如果是在一个库里做物化视图,
那么要将查询日志的权限给目标表的用户
一、配置tnsnames.ora文件 指定到主数据库的网络名,这里是db005
二、在从数据库上创建dblink 1.给download用户授予创建dblink的权利 grant create database link to download;
2.创建dblink conn download/xx
create database link link_db005_download connect to download identified by xxx using 'db005';
3.测试db-link是否成功
select table_name from user_tables@link_db005_download;
返回的行数与在master表的查询结果一样
三、在主数据库的表上创建物化视图日志,这个日志记录了主表的变化。 1.这里的主表名字是test SQL> create materialized view log on test;
2.查看物化视图日志中记录的住表改变行数 select count(*) from MLOG$_TEST;
四、从数据库上创建物化视图 1.给用户download授予create materialized view权限。
grant create materialized view to download;
2.创建物化视图 create materialized view test refresh fast with primary key start with sysdate next sysdate+2/1440 as select * from; ---- 这里用的是fast自动更新,fast只更新主表变化的行; with sysdate next sysdate+2/1440 --表示2分钟更新一次 ---- 3.测试 在主表中insert或者update数据,看物化视图日志中是否记录变化,然后再看到了刷新时间后,主从表的数据是否同步。 |
|