温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在线重定义步骤

发布时间:2020-08-11 02:53:42 来源:网络 阅读:457 作者:春秋小记 栏目:关系型数据库

表在线重定义原理:        

oracle表的在线重定义是通过,prebuilt物化视图实现的,在执行DBMS_REDEFINITION.START_REDEF_TABLE()后,我们可以通过查询,user_mviews与user_mview_logs和查看prebuilt物化视图,发现增加了对应的物化视图和物化视图日志,而SYNC_INTERIM_TABLE(),其实也只是物化视图的增量刷新,最终执行FINISH_REDEF_TABLE()的时候,将锁定原表,防止表上的DML,物化视图执行刷新,完成刷新后,将删除物化视图和对应的日志,将中间表rename成目标表。注意:如果业务系统比较繁忙,那么在最后一步会阻塞业务。



begin DBMS_REDEFINITION.CAN_REDEF_TABLE('chunqiu','WL_FLOW_INFO', DBMS_REDEFINITION.CONS_USE_PK); end;

begin  dbms_redefinition.start_redef_table('chunqiu','WL_FLOW_INFO','WL_FLOW_INFO_tmp'); end;

begin dbms_redefinition.sync_interim_table('chunqiu','WL_FLOW_INFO','WL_FLOW_INFO_tmp'); end;

begin dbms_redefinition.finish_redef_table('chunqiu','WL_FLOW_INFO','WL_FLOW_INFO_tmp'); end;


如果操作失败,查找原因,后续处如下处理后可以再次重做:

begin DBMS_REDEFINITION.abort_redef_table('chunqiu','WL_FLOW_INFO','WL_FLOW_INFO_tmp') ; end;

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI