Oracle数据快照 第一步:创建dblink;(先使用net manager在目标数据库服务器上面建立net服务名192.168.10.7) drop public database link dblink_sportsdb; Create public DATABASE LINK dblink_sportsdb CONNECT TO system IDENTIFIED BY myodbc123456 USING '192.168.10.7'; 其中 dblink_sportsdb为dblink的name system为源数据库用户名; Myodbc123456为密码; 192.168.10.7为网络服务名(net ID); 第二步:在源数据库和目标数据库上建立同步表 drop table medal_order; create table medal_order(id number(11) primary key, game_id varchar2(20), department varchar2(10), sporting_item varchar2(10), child_item_id varchar2(10), group_difference varchar2(10), stat_kind varchar2(10), score_kind varchar2(10), one varchar2(10), two varchar2(10), three varchar2(10), four varchar2(10), five varchar2(10), six varchar2(10), seven varchar2(10), eight varchar2(10), nine varchar2(10), ten varchar2(10), eleven varchar2(10), twelve varchar2(10), medal_total varchar2(10) ); 第三步、在目的数据库上,测试dblink select * from medal_order@ dblink_sportsdb 2; 第四步、在源数据库上,创建要同步表的快照日志 Create snapshot log on medal_order; 第五步、创建快照,在目的数据库上创建快照 Create snapshot medal_order as select * from medal_order @dblink_sportsdb; 第六步、设置快照刷新时间(只能选择一种刷新方式,推荐使用快速刷新,这样才可以用触发器双向同步) 快速刷新 Alter snapshot sn_test_user refresh fast Start with sysdate next sysdate with primary key; --oracle马上自动快速刷新,以后不停的刷新,只能在测试时使用.真实项目要正确权衡刷新时间.
完全刷新 Alter snapshot sn_test_user refresh complete Start with sysdate+30/24*60*60 next sysdate+30/24*60*60; --oracle自动在30秒后进行第一次完全刷新,以后每隔30秒完全刷新一次 删除快照视图: drop materialized view sportsdb.(快照名称);//sportsdb是指用户名