OceanBase租户扩缩容的三种方法
OceanBase租户扩缩容的三种方法
- 租户扩缩容:调整Unit Config
- 场景一:租户配置了独立的资源规格
- 场景二:多个租户使用了相同的资源规格
- 租户扩缩容:调整Unit Number
- 设置租户内的负载均衡策略
- 修改Unit Number实现扩缩容
- 租户扩缩容:调整Primary Zone
- 增加Primary Zone
- 减少Primary Zone
OceanBase V4.2.5
租户扩容可以提升计算能力和存储容量,OceanBase数据库提供了以下两种途径来实现扩缩容:
- 提高单节点的服务能力:即调大租户资源池使用的资源规格(unit config)。
- 增加服务节点的数量:可以分为增加资源单元(unit number)或者增加Primary Zone。
缩容是扩容的反操作,本质上是降低租户的服务能力,包括计算能力和存储容量。可以是调小资源规格,从而降低单节点的服务能力;也可以是通过减少服务节点,包括减少Primary Zone个数和减少Unit Number。
租户扩缩容:调整Unit Config
⚠️ 注意事项
- 在扩容前,如果有租户被删除,建议与租户对应的资源池也一并删除,以便释放资源。
- 进行租户缩容前,建议进行一轮转储以便释放租户正在使用的内存。
- 在调大资源规格时,无论是通过修改资源配置还是切换资源配置,调整后的资源总量都必须满足以下要求:
- sum(min_cpu) <= CPU_CAPACITY
- sum(max_cpu) <= CPU_CAPACITY * resource_hard_limit
- sum(memory_size) <= MEM_CAPACITY
- sum(log_disk_size) <= LOG_DISK_CAPACITY
其中,CPU_CAPACITY
、MEM_CAPACITY
、LOG_DISK_CAPACITY
分别表示CPU总量、内存总量和日志盘总容量。resource_hard_limit
是一个配置项的值。在分配Unit时,系统会根据配置项resource_hard_limit
的值来分配CPU资源。该配置项的默认值为100,表示不允许超卖,取值范围为[100,10000]
。
登录到集群SYS租户,这些容量指标的查看方式如下:
--查询资源上限
select svr_ip,zone,cpu_capacity,cpu_assigned,mem_capacity,mem_assigned,log_disk_capacity,log_disk_assigned,
data_disk_capacity,data_disk_allocated from oceanbase.GV$OB_SERVERS;select svr_ip,zone,tenant_id,scope,section,name,value,edit_level,default_value
from oceanbase.gv$ob_parameters where name='resource_hard_limit';--查询资源规格
select unit_config_id,name,max_cpu,min_cpu,memory_size,log_disk_size from oceanbase.dba_ob_unit_configs;--查询租户资源分配
select unit_id,tenant_id,resource_pool_id,unit_config_id,max_cpu,min_cpu,memory_size,log_disk_size from oceanbase.dba_ob_units;
select svr_ip,unit_id,tenant_id,max_cpu,min_cpu,memory_size,log_disk_size from gv$ob_units;
📖 在通过调大和调小租户资源规格进行扩容和缩容时,有以下两种场景:
- 当前租户配置了独立的资源规格,可以直接修改租户的资源规格。
- 多个租户使用了相同的资源规格,需要切换租户的资源规格。
登录SYS租户管理员,获取租户所使用的资源规格ID:
obclient(root@sys)[oceanbase]> select a.tenant_name, b.unit_config_id from oceanbase.dba_ob_tenants a,oceanbase.dba_ob_resource_pools b where b.tenant_id=a.tenant_id;
+-------------+----------------+
| tenant_name | unit_config_id |
+-------------+----------------+
| sys | 1 |
| tpcc | 1001 |
| mysql_t1 | 1002 |
| mysql_t2 | 1002 |
+-------------+----------------+
上面的查询结果中,tpcc
租户使用了独立的资源规格,mysql_t1
和mysql_t2
使用了相同的资源规格。
场景一:租户配置了独立的资源规格
以tpcc
租户为例。
- 登录集群SYS租户,查询待操作租户所使用的
UNIT_CONFIG_ID
:
obclient(root@sys)[oceanbase]> select a.tenant_name, b.unit_config_id from oceanbase.dba_ob_tenants a,oceanbase.dba_ob_resource_pools b where b.tenant_id=a.tenant_id;
+-------------+----------------+
| tenant_name | unit_config_id |
+-------------+----------------+
| sys | 1 |
| tpcc | 1001 |
| mysql_t1 | 1002 |
| mysql_t2 | 1002 |
+-------------+----------------+
4 rows in set (0.021 sec)
- 查询待操作租户的资源规格详情。
obclient(root@sys)[oceanbase]> select * from oceanbase.dba_ob_unit_configs where unit_config_id='1001';
+----------------+-----------+----------------------------+----------------------------+---------+---------+--------------+---------------+----------+----------+-------------+
| UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
+----------------+-----------+----------------------------+----------------------------+---------+---------+--------------+---------------+----------+----------+-------------+
| 1001 | tpcc_unit | 2025-04-16 10:22:22.470219 | 2025-04-16 10:22:22.470219 | 24 | 24 | 200789721088 | 708132732928 | 10000 | 10000 | 36 |
+----------------+-----------+----------------------------+----------------------------+---------+---------+--------------+---------------+----------+----------+-------------+
1 row in set (0.011 sec)
- 检查节点资源上限。
select svr_ip,zone,cpu_capacity,cpu_assigned,
round(mem_capacity/1024/1024/1024,2) as mem_capacity_gb,
round(mem_assigned/1024/1024/1024,2) as mem_assigned_gb,
round(log_disk_capacity/1024/1024/1024,2) as log_disk_capacity_gb,
round(log_disk_assigned/1024/1024/1024,2) as log_disk_assigned_gb,
round(data_disk_capacity/1024/1024/1024,2) as data_disk_capacity_gb,
round(data_disk_allocated/1024/1024/1024,2) as data_disk_allocated_gb
from oceanbase.GV$OB_SERVERS;select svr_ip,unit_id,tenant_id,max_cpu,min_cpu,
round(memory_size/1024/1024/1024,2) as memory_size_gb,
round(log_disk_size/1024/1024/1024,2) as log_disk_size_gb
from gv$ob_units;
- 调大(或调小)资源规格。
--调小资源规格
alter resource unit tpcc_unit max_cpu 8, min_cpu 8, memory_size '20g', log_disk_size '60g';--调大资源规格
alter resource unit tpcc_unit max_cpu 28, min_cpu 28, memory_size '120g', log_disk_size '360g';
- 确认是否修改成功。
obclient(root@sys)[oceanbase]> select * from oceanbase.dba_ob_unit_configs where unit_config_id='1001';
+----------------+-----------+----------------------------+----------------------------+---------+---------+--------------+---------------+----------+----------+-------------+
| UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
+----------------+-----------+----------------------------+----------------------------+---------+---------+--------------+---------------+----------+----------+-------------+
| 1001 | tpcc_unit | 2025-04-16 10:22:22.470219 | 2025-04-26 12:04:15.664243 | 28 | 28 | 128849018880 | 386547056640 | 10000 | 10000 | 36 |
+----------------+-----------+----------------------------+----------------------------+---------+---------+--------------+---------------+----------+----------+-------------+
1 row in set (0.000 sec)
场景二:多个租户使用了相同的资源规格
多个租户共用了同一个资源规格时,不能通过简单的调大和调小资源规格来实现租户的扩容和缩容。因为一旦修改,将导致使用相同资源规格的所有租户同时进行了扩容或缩容。此场景下,需要先创建独立的资源规格后,再为租户切换资源规格。
以mysql_t2
租户为例。
- 登录集群SYS租户,查询待操作租户所使用的
UNIT_CONFIG_ID
和RESOURCE_POOL_NAME
。
obclient(root@sys)[oceanbase]> select a.tenant_name, b.name resource_pool_name, b.unit_config_id from oceanbase.dba_ob_tenants a,oceanbase.dba_ob_resource_pools b where b.tenant_id=a.tenant_id;
+-------------+--------------------+----------------+
| tenant_name | resource_pool_name | unit_config_id |
+-------------+--------------------+----------------+
| sys | sys_pool | 1 |
| tpcc | tpcc_pool | 1001 |
| mysql_t1 | pool_mysql_s1 | 1002 |
| mysql_t2 | pool_mysql_s2 | 1002 |
+-------------+--------------------+----------------+
4 rows in set (0.008 sec)
- 查询待操作租户的资源规格详情。
obclient(root@sys)[oceanbase]> select * from oceanbase.dba_ob_unit_configs where unit_config_id='1002';
+----------------+---------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
| UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
+----------------+---------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
| 1002 | unit_mysql_s1 | 2025-04-26 11:18:04.887209 | 2025-04-26 12:06:13.453403 | 1 | 1 | 2147483648 | 6442450944 | 9223372036854775807 | 9223372036854775807 | 1 |
+----------------+---------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
1 row in set (0.000 sec)
- 检查节点资源上限。
select svr_ip,zone,cpu_capacity,cpu_assigned,
round(mem_capacity/1024/1024/1024,2) as mem_capacity_gb,
round(mem_assigned/1024/1024/1024,2) as mem_assigned_gb,
round(log_disk_capacity/1024/1024/1024,2) as log_disk_capacity_gb,
round(log_disk_assigned/1024/1024/1024,2) as log_disk_assigned_gb,
round(data_disk_capacity/1024/1024/1024,2) as data_disk_capacity_gb,
round(data_disk_allocated/1024/1024/1024,2) as data_disk_allocated_gb
from oceanbase.GV$OB_SERVERS;select svr_ip,unit_id,tenant_id,max_cpu,min_cpu,
round(memory_size/1024/1024/1024,2) as memory_size_gb,
round(log_disk_size/1024/1024/1024,2) as log_disk_size_gb
from gv$ob_units;
- 创建一个独立的新资源规格,新资源规格各项资源值为待修改的目标值。
select unit_config_id,name,max_cpu,min_cpu,
round(memory_size/1024/1024/1024,2) as memory_size_gb,
round(log_disk_size/1024/1024/1024,2) as log_disk_size_gb
from oceanbase.dba_ob_unit_configs;create resource unit unit_mysql_s2 max_cpu = 2, min_cpu = 2, memory_size = '2g',log_disk_size = '6g';
- 调整待操作租户的资源池使用新资源规格。
select resource_pool_id,a.name pool_name,tenant_id,unit_count,a.unit_config_id,b.name unit_config_name,zone_list
from dba_ob_resource_pools a, dba_ob_unit_configs b where a.unit_config_id=b.unit_config_id;alter resource pool pool_mysql_s2 unit='unit_mysql_s2';
- 查询租户当前的资源规格,确认是否修改成功。
obclient(root@sys)[oceanbase]> select a.tenant_name, b.name resource_pool_name, b.unit_config_id from oceanbase.dba_ob_tenants a,oceanbase.dba_ob_resource_pools b where b.tenant_id=a.tenant_id;
+-------------+--------------------+----------------+
| tenant_name | resource_pool_name | unit_config_id |
+-------------+--------------------+----------------+
| sys | sys_pool | 1 |
| tpcc | tpcc_pool | 1001 |
| mysql_t1 | pool_mysql_s1 | 1002 |
| mysql_t2 | pool_mysql_s2 | 1003 |
+-------------+--------------------+----------------+
4 rows in set (0.008 sec)obclient(root@sys)[oceanbase]> select * from oceanbase.dba_ob_unit_configs where unit_config_id='1003';
+----------------+---------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
| UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
+----------------+---------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
| 1003 | unit_mysql_s2 | 2025-04-26 12:15:23.678828 | 2025-04-26 12:15:23.678828 | 2 | 2 | 2147483648 | 6442450944 | 9223372036854775807 | 9223372036854775807 | 2 |
+----------------+---------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
1 row in set (0.000 sec)
租户扩缩容:调整Unit Number
从OB V4.0.0版本开始,OceanBase数据库要求租户内每个Zone的Unit个数必须保持一致。为了方便统一管理各个Zone的Unit,系统引入了Unit Group机制,即不同Zone之间相同编号(UNIT_GROUP_ID
)的Unit属于同一个Unit Group。调大或调小Unit Number本质上是以Unit Group为单位创建和删除Unit。
⚠️由于一个租户在一个OB节点只能同时存在一个Unit。因此调整Unit Number扩容租户不适用于单机部署模式。单机模式查下扩容Unit Number会收到下面的报错:
ERROR 4734 (HY000): zone 'zone1' server not enough to hold 1 new unit, please check zone valid servers
⚠️ 注意事项
- 在扩容前,如果有租户被删除,建议与租户对应的资源池也一并删除,以便释放资源。
- 进行租户缩容前,建议进行一轮转储以便释放租户正在使用的内存。
- 在进行租户的扩容和缩容操作前,设置租户内的负载均衡策略。
设置租户内的负载均衡策略
租户内的负载均衡策略由租户级配置项enable_rebalance
和enable_transfer
共同控制。
enable_rebalance
在系统租户下配置可用于控制是否进行租户间的负载均衡;在用户租户下配置可用于控制是否进行租户内均衡。默认值为true
,可动态修改。enable_transfer
用于控制是否允许在租户内进行Transfer。默认值为true
,可动态修改。配置项enable_rebalance=false
时此配置项无效。enable_rebalance=false
时,系统不会进行自动负载均衡。enable_rebalance=true
且enable_transfer=true
时,在进行租户扩缩容操作时,系统会自动调整分区分布,实现负载均衡。enable_rebalance=true
且enable_transfer=false
时,在进行租户扩缩容操作时,系统不能发起 Transfe操作,只能通过日志流迁移实现有限的均衡。
检查租户的负载均衡配置:
obclient(root@sys)[oceanbase]>
select svr_ip,zone,tenant_id,scope,section,name,value,edit_level,default_value
from oceanbase.gv$ob_parameters where name in ('enable_rebalance','enable_transfer');+-------------+-------+-----------+--------+--------------+------------------+-------+-------------------+---------------+
| svr_ip | zone | tenant_id | scope | section | name | value | edit_level | default_value |
+-------------+-------+-----------+--------+--------------+------------------+-------+-------------------+---------------+
| 172.xx.x.xx | zone1 | 1 | TENANT | LOAD_BALANCE | enable_transfer | True | DYNAMIC_EFFECTIVE | True |
| 172.xx.x.xx | zone1 | 1 | TENANT | LOAD_BALANCE | enable_rebalance | True | DYNAMIC_EFFECTIVE | True |
| 172.xx.x.xx | zone1 | 1001 | TENANT | LOAD_BALANCE | enable_transfer | True | DYNAMIC_EFFECTIVE | True |
| 172.xx.x.xx | zone1 | 1001 | TENANT | LOAD_BALANCE | enable_rebalance | True | DYNAMIC_EFFECTIVE | True |
| 172.xx.x.xx | zone1 | 1002 | TENANT | LOAD_BALANCE | enable_transfer | True | DYNAMIC_EFFECTIVE | True |
| 172.xx.x.xx | zone1 | 1002 | TENANT | LOAD_BALANCE | enable_rebalance | True | DYNAMIC_EFFECTIVE | True |
| 172.xx.x.xx | zone1 | 1003 | TENANT | LOAD_BALANCE | enable_transfer | True | DYNAMIC_EFFECTIVE | True |
| 172.xx.x.xx | zone1 | 1003 | TENANT | LOAD_BALANCE | enable_rebalance | True | DYNAMIC_EFFECTIVE | True |
...
开启单个用户租户的负载均衡:
ALTER SYSTEM SET enable_rebalance = true TENANT = 'mysql_t1';
ALTER SYSTEM SET enable_transfer = true TENANT = 'mysql_t1';
开启所有租户的负载均衡:
ALTER SYSTEM SET enable_rebalance = true TENANT = all_user;
ALTER SYSTEM SET enable_transfer = true TENANT = all_user;
修改Unit Number实现扩缩容
- 登录SYS租户,查看要扩缩容租户的
tenant_id
信息。
select * from oceanbase.dba_ob_tenants where tenant_name = 'mysql_t1';
- 查看目标租户的所有Unit和Unit Group信息。
select * from oceanbase.dba_ob_units where tenant_id = 1004;
- 检查OB节点的数量和zone信息。
select svr_ip,svr_port,zone from oceanbase.gv$ob_servers;
- 修改目标租户的Unit Number。
如果是租户扩容,调大Unit Number即可(不要超过OB节点数);如果是租户缩容,调小Unit Number即可。
ALTER RESOURCE TENANT mysql_t1 UNIT_NUM = 2;
缩容时可以指定要删除的UNIT_GROUP
。
ALTER RESOURCE TENANT mysql_t1 UNIT_NUM = 1 DELETE UNIT_GROUP =(1003);
- 查看Unit Number变更任务的执行状态。
select * from oceanbase.dba_ob_tenant_jobs where job_type='ALTER_RESOURCE_TENANT_UNIT_NUM' and tenant_id=1004;
- 字段
START_TIME
是任务发起的时间; - 字段
EXTRA_INFO
记录了变更前后的Unit Number数。 - 字段
JOB_STATUS
的值为SUCCESS时,表示修改Unit Number的任务执行成功。
- 确认修改后的Unit。
select * from oceanbase.dba_ob_units where tenant_id = 1004;
租户扩缩容:调整Primary Zone
通过修改Primary Zone,可以横向增加或减少计算节点,达到租户总服务能力的提升或降低,实现租户的扩容或缩容。
调整Primary Zone前,需要设置租户内的负载均衡策略。租户内的负载均衡策略由租户级配置项enable_rebalance
和enable_transfer
共同控制。
配置项enable_rebalance
和enable_transfer
的介绍,请参考上文的《租户扩缩容:调整Unit Number》部分。
增加Primary Zone
- 登录到SYS租户,查询要扩容租户的
tenant_id
和primazy_zone
信息。
obclient(root@sys)[oceanbase]>
select tenant_id, tenant_name, primary_zone from oceanbase.dba_ob_tenants where tenant_name = 'tpcc';+-----------+-------------+--------------+
| TENANT_ID | TENANT_NAME | PRIMARY_ZONE |
+-----------+-------------+--------------+
| 1004 | tpcc | zone1;zone2 |
+-----------+-------------+--------------+
1 row in set
- 查询目标租户当前日志流Leader副本位置的分布信息。
select tenant_id, ls_id, svr_ip, svr_port, zone, role, replica_type
from oceanbase.cdb_ob_ls_locations where tenant_id = 1004 and ls_id != 1 and role = 'LEADER';+-----------+-------+---------------+----------+--------+--------+--------------+
| TENANT_ID | LS_ID | SVR_IP | SVR_PORT | ZONE | ROLE | REPLICA_TYPE |
+-----------+-------+---------------+----------+--------+--------+--------------+
| 1004 | 1001 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
| 1004 | 1012 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
+-----------+-------+---------------+----------+--------+--------+--------------+
2 rows in set
- 修改目标租户的
primary_zone
属性,第一优先级Zone的个数从1调整为2。
ALTER TENANT tpcc PRIMARY_ZONE='zone1,zone2';
- 查看增加Primary Zone任务的执行状态。
select * from oceanbase.dba_ob_tenant_jobs where job_type='ALTER_TENANT_PRIMARY_ZONE' and tenant_id = 1004;+--------+---------------------------+------------+-------------+----------+----------------------------+----------------------------+-----------+--------------------------------------------------+-------------+----------------+-------------+
| JOB_ID | JOB_TYPE | JOB_STATUS | RESULT_CODE | PROGRESS | START_TIME | MODIFY_TIME | TENANT_ID | SQL_TEXT | EXTRA_INFO | RS_SVR_IP | RS_SVR_PORT |
+--------+---------------------------+------------+-------------+----------+----------------------------+----------------------------+-----------+--------------------------------------------------+-------------+----------------+-------------+
| 4 | ALTER_TENANT_PRIMARY_ZONE | SUCCESS | 0 | 100 | 2024-12-18 17:26:00.069089 | 2024-12-18 17:26:20.919021 | 1004 | ALTER TENANT tpcc PRIMARY_ZONE='zone1,zone2' | zone1;zone2 | 172.xx.xxx.xx | 2882 |
+--------+---------------------------+------------+-------------+----------+----------------------------+----------------------------+-----------+--------------------------------------------------+-------------+----------------+-------------+
1 row in set
- 查询目标租户信息,确认PRIMARY_ZONE属性修改成功,第一优先级由
zone1
变更为zone1,zone2
。
select primary_zone from oceanbase.dba_ob_tenants where tenant_id = 1004;+--------------+
| PRIMARY_ZONE |
+--------------+
| zone1,zone2 |
+--------------+
1 row in set
- 再次查询目标租户日志流Leader副本位置的分布信息。
select tenant_id, ls_id, svr_ip, svr_port, zone, role, replica_type
from oceanbase.cdb_ob_ls_locations where tenant_id = 1004 and ls_id != 1 and role = 'LEADER';+-----------+-------+---------------+----------+-------+--------+--------------+
| TENANT_ID | LS_ID | SVR_IP | SVR_PORT | ZONE | ROLE | REPLICA_TYPE |
+-----------+-------+---------------+----------+-------+--------+--------------+
| 1004 | 1001 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
| 1004 | 1012 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
| 1004 | 1013 | 172.xx.xxx.xx | 2882 | zone2 | LEADER | FULL |
| 1004 | 1014 | 172.xx.xxx.xx | 2882 | zone2 | LEADER | FULL |
+-----------+-------+---------------+----------+-------+--------+--------------+
4 rows in set
减少Primary Zone
- 登录到SYS租户,查询要缩容租户的
tenant_id
和primazy_zone
信息。
select tenant_id, tenant_name, primary_zone from oceanbase.dba_ob_tenants where tenant_name = 'tpcc';+-----------+-------------+--------------+
| TENANT_ID | TENANT_NAME | PRIMARY_ZONE |
+-----------+-------------+--------------+
| 1004 | tpcc | zone1,zone2 |
+-----------+-------------+--------------+
1 row in set
- 查询目标租户当前日志流Leader副本位置的分布信息。
select tenant_id, ls_id, svr_ip, svr_port, zone, role, replica_type
from oceanbase.cdb_ob_ls_locations where tenant_id = 1004 and ls_id != 1 and role = 'LEADER';+-----------+-------+---------------+----------+-------+--------+--------------+
| TENANT_ID | LS_ID | SVR_IP | SVR_PORT | ZONE | ROLE | REPLICA_TYPE |
+-----------+-------+---------------+----------+-------+--------+--------------+
| 1004 | 1001 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
| 1004 | 1012 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
| 1004 | 1013 | 172.xx.xxx.xx | 2882 | zone2 | LEADER | FULL |
| 1004 | 1014 | 172.xx.xxx.xx | 2882 | zone2 | LEADER | FULL |
+-----------+-------+---------------+----------+-------+--------+--------------+
4 rows in set
- 修改目标租户的
primary_zone
属性,第一优先级Zone的个数从2调整为1。
ALTER TENANT tpcc PRIMARY_ZONE='zone1;zone2';
- 查看减少Primary Zone任务的执行状态。
select * from oceanbase.dba_ob_tenant_jobs where job_type='ALTER_TENANT_PRIMARY_ZONE' and tenant_id = 1004;
- 查询目标租户信息,确认PRIMARY_ZONE属性修改成功,第一优先级由
zone1,zone2
变更为zone1;zone2
。
select primary_zone from oceanbase.dba_ob_tenants where tenant_id = 1004;+--------------+
| PRIMARY_ZONE |
+--------------+
| zone1;zone2 |
+--------------+
1 row in set
- 再次查询目标租户日志流Leader副本位置的分布信息。
select tenant_id, ls_id, svr_ip, svr_port, zone, role, replica_type
from oceanbase.cdb_ob_ls_locations where tenant_id = 1004 and ls_id != 1 and role = 'LEADER';+-----------+-------+---------------+----------+--------+--------+--------------+
| TENANT_ID | LS_ID | SVR_IP | SVR_PORT | ZONE | ROLE | REPLICA_TYPE |
+-----------+-------+---------------+----------+--------+--------+--------------+
| 1004 | 1001 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
| 1004 | 1012 | 172.xx.xxx.xx | 2882 | zone1 | LEADER | FULL |
+-----------+-------+---------------+----------+--------+--------+--------------+
2 rows in set
以上。