【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】OBCE-4.2.0
【问题描述】增加二级分区失败
【复现路径】
MySQL [nd_zabbix]> alter table history add PARTITION (partition p2024_02_28 VALUES LESS THAN (1709136000));
ERROR 1235 (0A000): Add partition on subpart table without template not supported
表结构:
CREATE TABLE history
(
itemid
bigint(20) unsigned NOT NULL,
clock
int(11) NOT NULL DEFAULT ‘0’,
value
double NOT NULL DEFAULT ‘0’,
ns
int(11) NOT NULL DEFAULT ‘0’,
KEY history_1
(itemid
, clock
) BLOCK_SIZE 16384 LOCAL,
KEY history_2
(clock
) BLOCK_SIZE 16384 LOCAL
)
partition by range(clock
) subpartition by hash(itemid
)
(partition p2024_01_23 values less than (1706025600) (
subpartition p2024_01_23sp0,
subpartition p2024_01_23sp1,
subpartition p2024_01_23sp2,
subpartition p2024_01_23sp3,
subpartition p2024_01_23sp4,
subpartition p2024_01_23sp5),
partition p2024_01_24 values less than (1706112000) (
subpartition p2024_01_24sp0,
subpartition p2024_01_24sp1,
subpartition p2024_01_24sp2,
subpartition p2024_01_24sp3,
subpartition p2024_01_24sp4,
subpartition p2024_01_24sp5),
,,,,,,,,
知道问题了,二级分区表有模块化跟非模块化区分,如果每个分区的二级分区名字都一样,这就是模块化二级分区;反则是非模块化,非模块化在建表的时候需要指定二级分区定义。、
比如这样:
alter table history add PARTITION (
partition p2024_02_27 values less than (1709049600) (
subpartition p2024_02_27sp0,
subpartition p2024_02_27sp1,
subpartition p2024_02_27sp2,
subpartition p2024_02_27sp3,
subpartition p2024_02_27sp4,
subpartition p2024_02_27sp5));
而模块化则不需要指定二级分区定义:
alter table history_log add PARTITION (partition p2024_02_28 VALUES LESS THAN (1709136000));