十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
表在线重定义原理:
目前创新互联已为成百上千家的企业提供了网站建设、域名、网页空间、成都网站托管、企业网站设计、解放网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
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;