首批通过分布式安全可靠测评,为关键业务系统打造
从 Zone 中减少 OBServer 节点
更新时间:2023-07-19 13:03:07
本节主要介绍如何通过从 Zone 中减少 OBServer 节点的方式进行集群的缩容。
前提条件
在进行集群的缩容操作前,需要确认集群中资源对当前负载有较多冗余,通过 OCP 查看集群中资源的详细信息的相关操作请参见 查看集群的资源信息。
从 Zone 中减少 OBServer 节点的操作可以通过 SQL 语句和 OCP 平台两种方式来完成。
通过 SQL 语句从 Zone 中减少 OBServer 节点
您可以通过 SQL 语句从 Zone 中减少 OBServer 的方式来进行集群的缩容。通常需要从每个 Zone 内减少相等数量的 OBServer。
例如,假设当前集群中共包含 3 个可用区 z1、z2、z3,每个 Zone 内包含 2 台 OBServer。集群中有一个普通租户 tenant1,其资源分布情况如下:
obclient> CREATE RESOURCE UNIT unit1 MAX_CPU 6,MIN_CPU 6, MAX_MEMORY '36G', MIN_MEMORY '36G', MAX_IOPS 128, MIN_IOPS 128, MAX_DISK_SIZE '2T', MAX_SESSION_NUM 64;
obclient> CREATE RESOURCE POOL pool1 UNIT 'unit1', UNIT_NUM 2, ZONE_LIST ('z1','z2','z3');
obclient>CREATE TENANT tenant1 resource_pool_list=('pool1');
现在希望从每个 Zone 内减少 1 台 OBServer 来缩容,则缩容后,3 个 Zone 内均只包含 1 台 OBServer。
示例如下:
使用
root用户登录到数据库的sys租户。根据业务实际情况,缩小租户的资源配置,即减少
UNIT_NUM。注意
一个 Unit 只能分布在一台 OBServer 上,不能分布在多台 OBServer 上,如果在集群缩容前,您已经通过租户缩容将 Unit 规格设置到最佳配置,那么通过该方式进行集群缩容时,只能通过减少 Unit 数量来完成本次缩容。
调整后的 Unit 数量需要小于或等于计划删除 OBserver 后的单个 Zone 中的可用 OBserver 数量。
根据本案例场景,修改 Unit 的数量为 1。示例语句如下:
obclient> ALTER RESOURCE POOL pool1 UNIT_NUM 1;或者您也可以通过指定
unit_id的方式调小UNIT_NUM的数量,具体操作请参见 通过修改 UNIT_NUM 进行租户扩缩容。命令执行成功后,您可以通过查询
oceanbase.__all_unit内部表来确认租户的 Unit 是否缩容成功,如果查询结果中的所有 Unit 的status均为ACTIVE,即没有 Unit 处于DELETING状态,则表示本次 Unit 缩容成功。执行以下命令,从集群中删除各 Zone 中的 OBServer。
其中,
xxx.xxx.x.xx1、xxx.xxx.x.xx2、xxx.xxx.x.xx3分别表示待删除的 OBServer 的 IP 地址。obclient> ALTER SYSTEM DELETE SERVER 'xxx.xxx.x.xx1:2882' ZONE='z1'; obclient> ALTER SYSTEM DELETE SERVER 'xxx.xxx.x.xx2:2882' ZONE='z2'; obclient> ALTER SYSTEM DELETE SERVER 'xxx.xxx.x.xx3:2882' ZONE='z3';删除后,可执行以下语句,确认列表中已查询不到这些 OBServer 则表示删除成功。
obclient> SELECT * FROM oceanbase.__all_server;
通过 OCP 从 Zone 中减少 OBServer 节点
您可以通过 OCP 从 Zone 中减少 OBServer 的方式来进行集群的缩容。通常需要从每个 Zone 内减少相等数量的 OBServer。
假设当前集群中共包含 3 个可用区 z1、z2、z3,每个 Zone 内包含 2 台 OBServer。现在希望从每个 Zone 内减少 1 台 OBServer 来缩容,则缩容后,3 个 Zone 内均只包含 1 台 OBServer。
具体操作如下:
登录 OCP。
根据业务需要,调整租户的资源池,即在每个 Zone 内减少 Unit 数量。
注意
一个 Unit 只能分布在一台 OBServer 上,不能分布在多台 OBServer 上,如果在集群缩容前,您已经通过租户缩容将 Unit 规格设置到最合适的配置,那么通过该方式进行集群缩容时,只能通过减少 Unit 数量来完成本次缩容。
通过 OCP 修改资源池的操作请参见 修改资源池。
依次从 3 个 Zone 内减少 1 台 OBServer。
通过 OCP 从 Zone 内删除 OBServer 的相关操作请参见 删除 OBServer。