引序
目标表 tb_order
主键字段:orderno
一,转换前备份目标表
二,堆表转换分区表
方案一
静态中间表转换
具体步骤:
1,停 web 应用(防止目标表发生数据变化)
2,选择 range 分区 以建单日期按年做分区
3,按分区规则创建分区表(中间表)tb_order_new,并创建目标表中的所有约束和相关
权限
4,将目标表中的数据插入中间表
5,将目标表重命名为 tb_order_old
Rename tb_order to tb_order_old
6,将中间表重命名为 tb_order
Rename tb_order_new to tb_order
方案二
在线重定义
具体步骤:
1. 选择 range 分区 以建单日期按年做分区
2. 按分区规则创建分区表(中间表)tb_order_new,并创建目标表中的所有约束和相关
权限
3. 判断目标数据表是否可以进行重定义
dbms_redenition.can_redef_table('NBI', 'TB_ORDER');
4. 开始重定义过程
DBMS_REDEFINITION.START_REDEF_TABLE( 'NBI', 'TB_ORDER', 'TB_ORDER_NEW');
5. 同步 online 过程中的 DML 操作
dbms_redenition.sync_interim_table('NBI', 'TB_ORDER', 'TB_ORDER_NEW');
6. 结束定义过程
DBMS_REDEFINITION.FINISH_REDEF_TABLE('NBI', 'TB_ORDER', 'TB_ORDER_NEW');
分区表转换为堆表方法一致
区别在建中间表时建立普通表即可