mysql已有表建分区在线重定义_表在线重定义(有主键) – 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 1342964878...

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

在线重定义的表自行验证,看该表是否可以重定义

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

执行表的在线重定义

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、处理速度没有直接使用交互分区快

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值