首批通过分布式安全可靠测评,为关键业务系统打造
清理分区失败,错误代码 4007
更新时间:2024-01-22 01:56
在 OceanBase 数据库中通过 ALTER TABLE 语句清理指定分区报 4007 错误。本文介绍该问题的处理方法。
适用版本
OceanBase 数据库 V2.x 版本
问题现象
执行以下 SQL 语句失败,错误信息如下。
obclient> ALTER TABLE $table_name TRUNCATE PARTITION $partition_name;
ORA-00600: internal error code, arguments: -4007, truncate partition not supported
可能原因
OceanBase 数据库目前不支持在 ALTER TABLE 语句中清理指定分区,需要通过其他方式清理分区。
解决方式
可以通过在 DELETE 语句中指定分区的方式来清理分区。
需要在 DELETE 语句中加上 LIMIT 限制删除的数据数量,避免大事务。
MySQL 模式执行以下语句。
其中
$table_name表示表名,$partition_name表示分区名。obclient> DELETE FROM $table_name PARTITION($partition_name) LIMIT XX;Oracle 模式执行以下语句。
其中
$table_name表示表名,$partition_name表示分区名。obclient> DELETE FROM $table_name PARTITION($partition_name) WHERE rownum<=XX;