GaussDB分区表DDL业务报错

举报
GaussDB 数据库 发表于 2025/12/09 11:14:03 2025/12/09
【摘要】 故障现象使用分区表进行分区DDL业务,出现业务报错。故障原因分区DDL操作有新增(Add)、删除(Drop)、交换(Exchange)、清空(Truncate)、分割(Split)、合并(Merge)、移动(Move)、重命名(Rename)共8种,不同的分区DDL有对应的规格限制,用户如果试图越过规格限制进行该类操作,会导致业务报错。处理方法在《特性指南》中“分区表 > 分区表运维管理”章...
  • 故障现象

使用分区表进行分区DDL业务,出现业务报错。

  • 故障原因

分区DDL操作有新增(Add)、删除(Drop)、交换(Exchange)、清空(Truncate)、分割(Split)、合并(Merge)、移动(Move)、重命名(Rename)共8种,不同的分区DDL有对应的规格限制,用户如果试图越过规格限制进行该类操作,会导致业务报错。

  • 处理方法

在《特性指南》中“分区表 > 分区表运维管理”章节列出了分区DDL操作的使用方法和注意事项,这里给出具体的规格限制,按照不同的规格限制进行排查处理。

新增分区

    新增分区的名称不能与该分区表已有分区的名称相同。

    若新增RANGE分区,新增分区的分区键值要大于分区表中最后一个范围分区的上边界。

   若新增LIST分区,新增分区的分区键值不能与现有分区键值重复。

    RANGE分区表定义有MAXVALUE,或LIST分区定义有DEFAULT,无法新增分区。

   不支持新增HASH分区。

删除分区

   当分区表只有一个分区时,不能删除该分区。

  不支持删除HASH分区。

   删除分区会使得Global索引失效,可以通过UPDATE GLOBAL INDEX子句来同步更新Global索引,或者用户自行重建Global索引。

交换分区

   执行交换分区时,可以申明WITH/WITHOUT VALIDATION,表明是否校验普通表数据满足目标分区的分区键约束规则(默认开启校验)。

   如果申明WITHOUT VALIDATION,且交换的数据不完全属于目标分区,会导致分区表后续业务出现不可预知的后果。

   可以申明WITH VALIDATION VERBOSE,数据库会将不满足目标分区的分区键约束规则的数据,插入到分区表的其他分区中,最后再进行普通表与目标分区的交换。

  进行交换的普通表和分区的列数目、列结构、列信息需要完全一致,包括已被删除的列也需严格一致。

  进行交换的普通表索引和分区表Local索引个数相同,且对应索引的信息严格一致。

  进行交换的普通表索引和分区表压缩信息、表约束严格一致。

  进行交换的普通表索引和分区表不可以有动态数据脱敏,行访问控制约束。

  交换分区会使得Global索引失效,可以通过UPDATE GLOBAL INDEX子句来同步更新Global索引,或者用户自行重建Global索引。

  不支持对二级分区表的一级分区交换分区。

清空分区

  清空分区会使得Global索引失效,可以通过UPDATE GLOBAL INDEX子句来同步更新Global索引,或者用户自行重建Global索引。

分割分区

  分割后的新分区,可以与源分区名字相同,比如将分区p1分割为p1,p2。但数据库不会将分割前后相同名的分区视为同一个分区,这会影响分割期间数据库对源分区查询行为的判断。

  不支持分割HASH分区。

  若指定分割点分割RANGE分区,分割点要位于正被分割分区的分区键范围内。

 若不指定分割点分割RANGE分区,分割后的新分区必须满足分区范围定义递增的约束。

  若指定分割点分割LIST分区,分割点必须是源分区的一个非空真子集。

  若不指定分割点分割LIST分区,分割后的每个新分区都必须是源分区的一个非空真子集,且互不交叉。

−  分割分区会使得Global索引失效,可以通过UPDATE GLOBAL INDEX子句来同步更新Global索引,或者用户自行重建Global索引。

  不支持对二级分区表的一级分区分割分区。

合并分区

−  对于RANGE/INTERVAL分区,源分区的范围要求连续且递增。

 合并后的新分区,对于RANGE/INTERVAL分区,可以与最后一个源分区名字相同;对于LIST分区,可以与任一源分区名字相同。

  如果新分区与源分区名字相同,数据库会将新分区视为对源分区的继承,这会影响合并期间数据库对源分区查询行为的判断。

  不支持合并HASH分区。

  合并分区会使得Global索引失效,可以通过UPDATE GLOBAL INDEX子句来同步更新Global索引,或者用户自行重建Global索引。

  不支持对二级分区表的一级分区合并分区。

  USTORE存储引擎表不支持在事务块/存储过程中执行合并分区的操作。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。