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

本文分享了一篇关于Oracle数据库的在线重定义案例,通过DBMS_REDEFINITION包将普通表转换为分区表。这个过程是在线进行的,无需停止业务,但可能需要额外空间,并且速度较直接使用交互分区慢。首先检查表是否可重定义,然后开始重定义,同步数据,最后完成重定义。此方法提供了在不影响业务的情况下转换表的方案。
摘要由CSDN通过智能技术生成

天萃荷净

分享一篇关于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包实现表在线转换案例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值