OceanBase系列---【如何拆分PMAX分区?】

因为OceanBase的oracle模式不支持自动创建分区,所以为了节省时间,我们往往会手动预先创建很多分区,然而,随着时间的流逝,手动创建的总会有用完的时候。为了防止数据插入报错,我们会新增一个PMAX分区,来防止数据插入错误,把大于手动创建的最大分区的数据都存入了PMAX分区中。因此,本文就是为了解决这种场景而记录的。如果你使用定时任务,已经实现了自动创建分区,那么可以忽略本文。

1.备份PMAX分区数据

sql 复制代码
create table source_pmax_tmp as select * from source partition(PMAX);

2.验证PMAX备份表数据完整性

sql 复制代码
select count(1) from source partition(PMAX);
select count(1) from source_pmax_tmp;

3.删除原表中的pmax分区

sql 复制代码
-- 这里是因为直接加新分区加不上,必须删除pmax才能手动加。
ALTER TABLE SOURCE DROP PARTITION(PMAX);

4.新增新分区

sql 复制代码
-- 省略sql: 自己查一下pmax分区中的日期都有哪些,再决定新建多少分区
ALTER TABLE SOURCE ADD PARTITION P202112 VALUES LESS THAN (TO_DATE('2022-01-01','YYYY-MM-DD'));
ALTER TABLE SOURCE ADD PARTITION PMAX VALUES LESS THAN (MAXVALUE);

5.同步PMAX备份表的数据到原表

sql 复制代码
-- 迁移完就会自动按新分区新增了,这里实测:同步100多万数据需要20s左右。
insert into source select * from source_pmax_tmp ;
相关推荐
MMMMMMMMMMemory19 小时前
社区版oceanbase报警XA事务悬挂
数据库·oceanbase
OceanBase数据库官方博客19 小时前
APQO自适应参数化查询优化框架——OceanBase 校企联合研究成果
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客19 小时前
中国联通软研院基于OceanBase引领运营商数智化转型新范式
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客2 天前
滔搏基于OceanBase实现 15TB到0.9TB“无痛切换”与“系统瘦身”
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客2 天前
爱奇艺基于OceanBase实现百亿级卡券业务的“单库双擎”架构升级
数据库·架构·oceanbase·分布式数据库
OceanBase数据库官方博客3 天前
主流关系型数据库系统缺陷实证研究——OceanBase 校企联合研究
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客3 天前
客户案例|美的以OceanBase为基构建云中立数字化基座破局多云孤岛
数据库·oceanbase·分布式数据库
OceanBase数据库官方博客3 天前
基于分层协作多智能体的数据库参数调优——OceanBase 校企研究
数据库·oceanbase·分布式数据库
OceanBase数据库5 天前
滔搏基于OceanBase实现 15TB到0.9TB“无痛切换”与“系统瘦身”
oceanbase·分布式数据库
OceanBase数据库6 天前
基于分层协作多智能体的数据库参数调优——OceanBase 校企研究
oceanbase·分布式数据库