首批通过分布式安全可靠测评,为关键业务系统打造
删除 OBServer
更新时间:2023-07-19 13:03:07
您可以通过删除 OBServer 的方式来移除集群中的节点。
通过 SQL 语句删除 OBServer
Delete Server 操作
您可以通过 Delete Server 操作来删除 OBServer。Delete Server 操作用于从集群中删除节点。
删除 OBServer 的 SQL 语句如下:
ALTER SYSTEM DELETE SERVER 'ip:port' [,'ip:port'...] [ZONE [=] 'zone']
该语句仅支持在 sys 租户中执行。
Delete Server 操作会涉及到负载均衡,被删除的 Server 上的资源单元会在同一个 Zone 中进行资源单元(Unit)迁移。Unit 的迁移动作是 Unit 自动均衡的过程,主要由 RootService 控制。待 Unit 迁移成功,Delete Server 操作即执行成功。
但是 Unit 均衡过程中可能会发生资源不足,即其他同 Zone 的机器资源不足以容纳这个新迁移的 Unit,这样将导致 Unit 迁移失败,从而使该 OBServer 一直持续在删除操作中。您可以通过 /home/admin/oceanbase/log/rootservice.log 查看 Unit 是否迁移失败,迁移 Unit 失败的错误代码为 -4624。如果确认是 Unit 迁移失败,则需要执行 Cancel Delete Server 操作后,然后通过向 Zone 内添加 OBServer 节点的方式对集群扩容后再删除该 OBServer。通过向 Zone 内添加 OBServer 节点进行集群扩容的相关操作请参见 添加 OBServer。
示例:
使用
root用户登录到数据库的sys租户。执行以下语句,删除 OBServer。
示例如下:
obclient> ALTER SYSTEM DELETE SERVER "192.168.100.1:2882" zone='z1'查看
__all_server内部表,确认列表中已经查询不到该 OBServer 则表示删除成功。obclient> SELECT * FROM oceanbase.__all_server;
Cancel Delete Server 操作
如果您希望取消 Delete Server 操作,可以通过 Cancel Delete Server 操作来实现。
Cancel Delete Server 操作的 SQL 语句如下:
obclient> ALTER SYSTEM CANCEL DELETE SERVER 'ip:port' [,'ip:port'...] [ZONE [=] 'zone']
该语句仅支持在 sys 租户中执行。
示例:
使用
root用户登录到数据库的sys租户。执行以下语句,取消删除 OBServer。
示例如下:
obclient> ALTER SYSTEM CANCEL DELETE SERVER '10.10.10.1:2882' zone='zone1';
通过 OCP 删除 OBServer
您可以通过 OCP 来删除 OBServer,删除后,该 OBServer 将会从当前集群中移除。
前提条件
待操作的集群可以在当前 OCP 中进行管理。
如果该集群未加入到 OCP 中进行管理,请联系管理员将待操作的集群接管到当前 OCP 中,具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 接管集群。
删除 OBServer 前,请确认当前登录用户已具备集群的管理权限。
如果当前用户没有集群管理的权限,请联系管理员为您添加相应权限的角色,具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 编辑用户。
注意事项
删除 OBServer 的过程中,该 OBServer 上的 Unit 会自动迁移到同 Zone 内的其他 OBServer 上,若同 Zone 内其他 OBServer 剩余的可用资源不足,您需先添加一个资源充足的 OBServer 以供 Unit 迁移,否则会导致删除 OBServer 失败。
操作步骤
登录 OCP。
默认进入 集群 页面。
在该页面的 集群列表 中单击集群名,进入集群 总览 页面。
在 OBServer 列表 部分,单击需要删除的 OBServer 操作列的 删除 。

在弹出框中单击 删除 。
您可通过弹出框中的 查看任务 按钮,查看删除进度。
您也可在 系统管理 > 任务 中查看该任务的进度。
当该任务状态为 完成 ,且集群 总览 页的 OBServer 列表 中无此 OBServer 时,则删除成功。