sitemap

RSS地图

收藏本站

设为首页

Oracle研究中心

当前位置:Oracle研究中心 > 运维DBA >

【学习笔记】Oracle表在线重定义 使用DBMS_REDEFINITION包实现表在线转换案例

时间:2016-06-30 18:47   来源:Oracle研究中心   作者:惜分飞   点击:

天萃荷净 分享一篇关于Oracle数据库表在线重定义的案例,使用DBMS_REDEFINITION包实现数据表在线转换为分区表的详细步骤

主要是使用DBMS_REDEFINITION包实现,我这里主要是实现一个由普通表转为分区表的处理

1.在线重定义的表自行验证

看该表是否可以重定义

EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE(user, ‘T_DEF’, DBMS_REDEFINITION.CONS_USE_PK);
–如果T_DEF表无主键,请添加上,不然会爆如下错误
begin DBMS_REDEFINITION.CAN_REDEF_TABLE(user, ‘T_DEF’, DBMS_REDEFINITION.CONS_USE_PK); end;
ORA-12089: cannot online redefine table “CHF”.”T_DEF” with no primary key
ORA-06512: at “SYS.DBMS_REDEFINITION”, line 137
ORA-06512: at “SYS.DBMS_REDEFINITION”, line 1479
ORA-06512: at line 2

2.执行表的在线重定义

EXEC DBMS_REDEFINITION.START_REDEF_TABLE(USER, ‘T_DEF’, ‘T_DEF_NEW’);

同步数据
exec dbms_redefinition.sync_interim_table(USER, ‘T_DEF’, ‘T_DEF_NEW’);

执行结束在线定义过程
EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE(user, ‘T_DEF’, ‘T_DEF_NEW’);

说明:
1、和使用交换分区的办法处理,这个是在线的,不用停业务
2、在线重定义处理后,原表中的数据不会被清空,可能需要额外的空间
3、处理速度没有直接使用交互分区快


--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【学习笔记】Oracle表在线重定义 使用DBMS_REDEFINITION包实现表在线转换案例

本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/660.html

Oracle研究中心

关键词:

Oracle表在线重定义

使用DBMS_REDEFINITION包实现表在线转分区表案例

普通表转为分区表的详细步骤