最近研究数据同步的问题,因为软件是分布式部署的,要在三个地区安装,同时部分数据源是来源于上层的数据 ,而且网络还是时断时续的。
开始考虑做个定时获取增量数据的程序或者服务,但是自己实在是太懒了,还得加字段,于是乎google了一下oracle的materialized view,收获颇多,物化视图可以很好的解决这个问题,嘿嘿
我的步骤:(oracle 8.1.6)
1.建立数据库连接
create database link yourlink.link --数据库联接名称
connect to username --用户名
identified by password --密码
using 'servicename' --net 8 中的服务名
;
注:如果要连接数据库的全局实例名与当前数据库的相同,则需要把init.ora中的global_names选项设置为false,否则在select * from table1@yourlink的时候会出现ORA-02085的错误
2.创建物化视图日志
create materialized view log on table1;
3.创建物资目录物化视图
create materialized view mview1
refresh fast
start with sysdate
next sysdate+0.001 --两分钟刷新一次
with primary key
as select * from table1@yourlink;
最后实际测试了一下,因为数据是存储在本地的,所以不像普通的视图那样对网络的依赖那么强。
可以通过SELECT MM.mview_name,MM.last_refresh_date FROM mview1 MM 查询物化视图刷新时间
因为是刚刚接触,希望能与有经验的朋友交流