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

  网络带宽充裕的条件下,用物化视图在线迁移大表是省事办法,后期的维护也比较方便。今天试着采用物化视图对一个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


以上方法未练习,先行记下。感谢原文作者,转载地址:http://blog.sina.com.cn/s/blog_5d8f25920100bjkr.html


有高人传授了一句,既可以建好物化视图又可以把job建的sql语句,记下来以后用得着:

create materialized view mytable on prebuilt table refresh fast start with sysdate next sysdate+1/48 for update as select * from mytable@dblinkname

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值