在线重定义步骤

表在线重定义原理:        

目前创新互联已为成百上千家的企业提供了网站建设、域名、网页空间、成都网站托管、企业网站设计、解放网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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;


本文标题:在线重定义步骤
链接URL:http://myzitong.com/article/iphpcg.html