分享

使用物化视图的prebuilt功能迁移大表

 comeonwyj 2016-10-10

    网络带宽充裕的条件下,用物化视图在线迁移大表是省事办法,后期的维护也比较方便。今天试着采用物化视图对一个300w行记录的表做迁移。

1、主库上为要迁移的表创建物化视图log

要迁移的表test。

create materialized view log on test;  --test上需有primary key

2、在备库上创建test表

create table test as select * from test@prdb where 1=2;

 -- prdb:到主库的db link;where 1=2 建了一张空表,这个方式很巧妙,也是学以致用:)

3、在备库上创建prebuilt类型的物化视图日志

create materialized view test on prebuilt table refresh fast as select * from test@prdb;

-- 采用prebuilt,物化视图必须和前面在备库创建的表test同名;refrest fast代表创建该视图时对表test(备库上)记录做增量刷新,当时此时视图仍然为空。

4、在备库上对表记录做全量刷新

exec dbms_mview.refresh('TEST','complete');  -- 表记录从主库复制到备库

5、在备库上对表记录做增量刷新

如果主库表test记录不断产生,可以不断对物化视图做增量刷新,直到数据一致。

exec dbms_mview.refresh('TEST');

6、确认数据迁移完成后,可以删除主库上的物化视图LOG和备库上的物化视图

主库:drop materialized view log on test;

备库:drop materialized view test; -- 删除视图test不会影响到表test

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多