首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 停止错误,错误代码 4179
更新时间:2026-06-04 01:56
本文介绍执行 STOP SERVER 命令停止 OBServer 报 4179 错误时,如何进行问题排查并解决问题。
影响版本
OceanBase 数据库所有版本
问题现象
执行 STOP SERVER 命令停止 OBServer 错误,提示 Operation not allowed now,错误信息如下。
obclient> ALTER SYSTEM STOP SERVER "IP:2882";
ERROR 4179 (HY000): Operation not allowed now
可能原因
根据错误信息,判断错误的原因可能是当前集群不满足停止 OBServer 的条件。
要停止 OBServer,需要满足以下条件:
不能跨 Zone 执行
STOP SERVER操作,仅支持停止位于相同 Zone 中的 OBServer 。只有一个
STOP SERVER操作结束,才能发起另一个STOP SERVER操作。读写 Server 的数量需要能够作为多数派。
例如,对于一个 1-1-1 集群,如果已经有一台 OBServer 停止,在剩余的两台 OBServer 上执行
STOP SERVER操作一定会失败。配置项
enable_auto_leader_switch必须为 True。执行
STOP SERVER会检查 CLOG 是否同步,如果 CLOG 不同步,则不允许执行STOP SERVER。执行
STOP SERVER操作的 OBServer 上,租户的 Locality 设置应包含不少于两个 Zone,并且其中一个应当为副本 leader 所在的 Zone。说明
停止 OBServer 会停止该服务端对客户端提供的服务。停止后,客户端连接不会路由到停止的服务端。因此,要成功停止 OBServer,就是要将服务端上的所有副本 leader 切换到其他节点,并确保切换成功。
解决方法
按照原因中列举的注意事项逐一排查。
登录 OCP 云平台。
在左侧导航栏单击 集群 ,在 Zone 列表 页签执行以下检查。

检查执行
STOP SERVER的节点是否与要停止的节点位于相同的 Zone。检查是否有状态为 停止中 的 OBServer。
检查状态为 运行中 的 OBServer 数量是否满足多数派。
在左侧导航栏单击 租户管理 ,检查各租户的 Locality。

单击左侧导航栏的 参数管理 ,检查配置项
enable_auto_leader_switch是否为 True。enable_auto_leader_switch用于设置是否开启数据副本自动切主,默认为 True,表示允许副本自动切主。如果要停止的 OBServer 是副本 Leader,且enable_auto_leader_switch为 False,则停止该 OBServer 会导致副本无主。有关该配置项的详细信息,请参见《OceanBase 数据库 参考指南》中的 系统配置项 章节。

检查 CLOG 是否同步。
如果以下 SQL 执行结果为空,则表示 CLOG 已同步。
obclient> SELECT svr_ip, svr_port, table_id, partition_idx FROM __all_virtual_clog_stat WHERE is_in_sync= 0 AND is_offline = 0 AND replica_type != 16;