oracle – 创建新的物化视图,而不清除物化视图日志
我想在预建表上行使物化视图,以便在迁徙之前保持表同步.数据不绝变革,因此必要跟踪导出开始和导入完成之间的变革.不问可知,桌子很大,以是完全革新太慢了. 步调id喜好执行: >在新数据库上建设表. 题目是,在建设实体化视图的那一刻,将破除旧表上的mv日记. 老DB: alter table kvrtest add ( constraint pkkvrtest primary key (id) using index); insert into kvrtest (id,cat) values (1,1); commit; CREATE MATERIALIZED VIEW LOG ON kvrtest WITH PRIMARY KEY; insert into kvrtest (id,cat) values (2,1); insert into kvrtest (id,cat) values (3,2); commit; select * from MLOG$_KVRTEST; --Yields 2,these should be caught by a fast refresh. 新数据库: 此时破除mv日记 select * from MLOG$_KVRTEST; --Yields 0,a fast refresh from here does not catch these records. 有什么提议? 办理要领当您行使REFRESH标志建设新的MATERIALIZED VIEW时,日记表正在破除,由于我们的视图现实上是在建设之后.CREATE MATERIALIZED VIEW kvrtest ON PREBUILT TABLE WITHOUT REDUCED PRECISION USING INDEX REFRESH FORCE ON DEMAND AS 假如不想破除您的日记表行使NEVER REFRESH然后变动为REFRESH ON DEMAND,如下所示: CREATE MATERIALIZED VIEW kvrtest ON PREBUILT TABLE WITHOUT REDUCED PRECISION USING INDEX NEVER REFRESH AS select * from kvrtest@oldDb; 让我们看看我们的日记表 select * from MLOG$_KVRTEST; 我们有两排,真好!然后 ALTER MATERIALIZED VIEW kvrtest REFRESH ON DEMAND; 然后革新视图日记表将再次破除. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |