首批通过分布式安全可靠测评,为关键业务系统打造
删除列失败,错误代码 4694
更新时间:2026-05-21 01:56
本文介绍执行 SQL 语句删除列失败报 4694 错误的处理方法。
适用版本
OceanBase 数据库所有版本
问题现象
执行以下 SQL 语句删除列失败,提示以下错误。
ALTER TABLE < table_name > DROP COLUMN < column_name >;
ERROR 4694 ( HY000 ) : check drop column failed.
日志信息如下。
[2020-08-04 08:46:11.806708] WARN [RS] check_can_alter_column (ob_ddl_service.cpp:4186) [628][450][YB42AC10509C-0005AB78C0D7E1CC] [lt=4] [dc=0] can't alter column when major freeze is not finished(ret=-4179)
[2020-08-04 08:46:11.806722] WARN check_can_alter_column (ob_ddl_service.cpp:4187) [628][450][YB42AC10509C-0005AB78C0D7E1CC] [lt=12] [dc=0] alter column when major freeze is not finished not allowed
可能原因
根据日志信息,该错误是由于集群的合并操作尚未完成,需等待整个集群的合并操作完成后才可以执行 DROP COLUMN 语句。
说明
如果执行该操作的数据库具有备库,需要检查并确保备库的合并操作也为完成状态,才可执行 DROP COLUMN 语句。
OceanBase 数据库集群在合并期间,会对 DDL 语句进行以下限制。
对于主集群,不允许删除任何表的列。
对于备集群,不允许对备集群执行任何 DDL 语句。
解决方法
等待合并操作结束后再执行 DROP COLUMN 语句。特别地,对于主备库的场景,还需要等待备库合并完成。本节以 OCP V2.5.0 版本为例提供操作指导。不同 OCP 版本的操作界面可能不同,请以实际界面为准。
登录 OCP 。
在左侧导航栏单击 集群 ,在 集群列表 页签单击集群名,进入 集群概览 页面。
在集群概览页面导航栏单击 合并管理 ,查看各 Zone 的合并情况,如下图所示。
可见 基本信息 中 状态 为 空闲 ,表示合并已经完成。

同理,如果您部署了备集群,也可以通过 OCP 查看备集群的合并情况。