首批通过分布式安全可靠测评,为关键业务系统打造
删除节点
更新时间:2023-08-01 11:45:47
您可以通过删除节点的方式来移除集群中的节点。
Delete Server 操作
您可以通过 Delete Server 操作来删除节点。Delete Server 操作用于从集群中删除节点。
删除节点的 SQL 语句如下:
ALTER SYSTEM DELETE SERVER 'ip:port' [,'ip:port'...] [ZONE [=] 'zone']
该语句仅支持在 sys 租户中执行。
Delete Server 操作会涉及到负载均衡,被删除的 Server 上的资源单元会在同一个 Zone 中进行资源单元(Unit)迁移。Unit 的迁移动作是 Unit 自动均衡的过程,主要由 Root Service 控制。待 Unit 迁移成功,Delete Server 操作即执行成功。
但是 Unit 均衡过程中可能会发生资源不足,即其他同 Zone 的机器资源不足以容纳这个新迁移的 Unit,这样将导致 Unit 迁移失败,从而使该节点一直持续在删除操作中。您可以通过 /home/admin/oceanbase/log/rootservice.log 查看 Unit 是否迁移失败,迁移 Unit 失败的错误代码为 -4624。如果确认是 Unit 迁移失败,则需要执行 Cancel Delete Server 操作后,然后通过向 Zone 内添加节点节点的方式对集群扩容后再删除该节点。通过向 Zone 内添加节点节点进行集群扩容的相关操作请参见 向 Zone 内添加 OBServer 节点。
示例:
使用
root用户登录集群的sys租户。执行以下语句,删除节点。
示例如下:
obclient> ALTER SYSTEM DELETE SERVER "xx.xx.xx.xx:2882" zone='z1'查看
oceanbase.DBA_OB_SERVERS视图,确认列表中已经查询不到该节点则表示删除成功。obclient> SELECT * FROM oceanbase.DBA_OB_SERVERS;
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租户。执行以下语句,取消删除节点。
示例如下:
obclient> ALTER SYSTEM CANCEL DELETE SERVER '10.10.10.1:2882' zone='zone1';