需求:Message表,在原有分区的基础上添加一个新分区
具体描述:
- 该表有50张,从Message_0到Message_49,数据量比较大,最少的一张有几千万数据,50G左右,最大的一张有几亿数据,超过300G.
- 该表为list分区表,有default分区,且default分区数据量比较大,占全表数据量的95%以上
- 该表在三个月前做了联机重定义,将原来未分区的表做了分区,分区后存量数据放在default分区,新写入的数据都在其他分区中
- default分区数据现在在业务中基本上不用(存量数据)
爬坑开始:
爬坑1.直接add partition 报错: ORA-14323
alter table MESSAGE_0 add partition P_10 values(10);
直接向表中add一个P_10分区,执行报错,错误代码ORA-14323:list分区表中有default分区存在情况下不能add分区
爬坑2.split分区,执行缓慢
alter table MESSAGE_0 split partition P_D values (10) into (partition P_10,partition P_D);
将默认分区p_d拆成p_10和p_d两个分区,执行成功,但是比较慢(17301165条数据,34.79G,耗时162.07秒)