Oracle物化视图,物化视图日志,增量刷新同步远程数据库

1.创建DBLINK

-- Drop existing database link 
 drop public database link LQPVPUB; 
 -- Create database link 
 CREATE DATABASE LINK LQPVPUB 6 
 CONNECT TO "INTEPDM" identified by "password" 8 
 using "LQPVPUB"

2.创建物化视图日志(远程主机操作)

CREATE MATERIALIZED VIEW LOG ON dm_basicmodel  
 WITH PRIMARY KEY  
 INCLUDING NEW VALUES;

3.创建物化视图

CREATE MATERIALIZED VIEW mv_model --创建物化视图 
 BUILD IMMEDIATE --在视图编写好后创建
 REFRESH FAST WITH PRIMARY KEY --根据主表主键增量刷新(FAST,增量)
 ON DEMAND -- 在用户需要时,由用户刷新 
 ENABLE QUERY REWRITE --可读写
 AS SELECT bm_id,bm_partid,bm_code from dm_basicmodel@LQPVPUB t --查询语句

4.删除物化视图和日志

日志和物化视图要分开删除

DROP MATERIALIZED VIEW LOG ON GG_ZLX_ZHU@TOCPEES;
DROP MATERIALIZED VIEW GG_ZLX_ZHU;

5.物化视图更新

CREATE OR REPLACE PROCDURE P_MVIEW_REFRESH AS  

BEGIN  

    DBMS_MVIEW.REFRESH('GG_ZLX_ZHU,GG_ZLX_FU','ff');  

END P_MVIEW_REFRESH;

注意:

5.1、如果需要同时刷新多个物化视图,必须用逗号把各个物化视图名称连接起来,并对每个视图都要指明刷新方式

     (f、增量刷新,c、完全刷新,?、强制刷新)。

5.2、当日志和物化视图创建好后,删除日志,则需要重新创建物化视图,否则无法增量刷新。

5.3、因为上面写的物化视图时根据主键进行更新,因此,主表必须有主键。

6.查询刷新情况

对于完全刷新(Complete),刷新耗时会记录在DBA_MVIEW_ANALYSIS的FULLREFRESHTIM列中。而对于可快速刷新(Fast)的时间,会记录在INCREFRESHTIM列中。这两个值的单位都是秒。
SELECT mview_name, last_refresh_date, fullrefreshtim, increfreshtim
FROM dba_mview_analysis
WHERE owner='JOHN';

相关推荐