欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/
租户扩容或缩容本质上是提高或降低租户的服务能力,包括计算能力和存储容量,可以通过提高单节点的服务能力达成,也可以通过增加服务节点达成。本文介绍如何通过调大或者调小租户的资源规格(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:表示 CPU 总的容量。MEM_CAPACITY:表示内存总的容量。LOG_DISK_CAPACITY:表示日志盘总的容量。resource_hard_limit:是一个配置项的值。在分配 Unit 时,系统会根据配置项
resource_hard_limit的值来分配 CPU 资源。该配置项的默认值为100,表示不允许超卖,取值范围为[0, 10000]。更多配置项
resource_hard_limit的说明信息,参见 resource_hard_limit。
调整资源规格
在通过调大和调小租户资源规格进行扩容和缩容时,有以下两种场景:
当前租户配置了独立的资源规格,可以直接修改租户的资源规格。
多个租户使用了相同的资源规格,需要切换租户的资源规格。
获取租户所使用的资源规格 ID
确认租户是否使用了独立的资源规格,可以执行以下语句,获取待操作的租户所使用的资源规格 ID:
使用 root 用户登录集群的 sys 租户。
obclient -h172.30.xxx.xxx -P2883 -uroot@sys -pxxxx -A查询待操作的租户所属的资源配置 ID。
obclient> 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 | | midas0_3790 | 1008 | | midas0_3790 | 1008 | | midas0_3790 | 1007 | | mq_t1 | 1006 | | oracle_tenant1 | 1003 | +----------------+----------------+ 6 rows in set
根据查询结果,如果当前租户对应的 UNIT_CONFIG_ID 与其他租户相同,则表示有多个租户使用了相同的资源规格。
如果当前租户中对应的 UNIT_CONFIG_ID 与其他租户均不相同,则表示该租户使用了独立的资源规格,例如租户 mq_t1 所对应的 UNIT_CONFIG_ID 与其他租户的都不一样,所以租户 mq_t1 使用了独立的资源规格。
租户配置了独立的资源规格的场景
如果待操作的租户配置了独立的资源规格,可以直接通过修改租户的 unit_config 来完成租户的扩容和缩容。
示例:
下面以调整租户 mq_t1 的资源规格,调大 CPU 资源为例进行说明。
使用 root 用户登录到集群的 sys 租户。
obclient -h172.30.xxx.xxx -P2883 -uroot@sys -pxxxx -A进入
oceanbase数据库。obclient>USE oceanbase;查询待操作租户所使用的
UNIT_CONFIG_ID。obclient> 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 | | midas0_3790 | 1008 | | midas0_3790 | 1008 | | midas0_3790 | 1007 | | mq_t1 | 1006 | | oracle_tenant1 | 1003 | +----------------+----------------+ 6 rows in set查询待操作租户的资源规格详情。
obclient> SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS WHERE UNIT_CONFIG_ID='1006'; +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT | +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | 1006 | S2_unit_config | 2022-11-03 17:13:29.021410 | 2022-11-03 17:13:29.021410 | 3 | 3 | 12884901888 | 38654705664 | 30000 | 30000 | 3 | +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ 1 row in set调整资源规格。
调大
S2_unit_config配置。obclient> ALTER RESOURCE UNIT S2_unit_config MAX_CPU 5, MIN_CPU 5;查询租户当前的资源规格,确认是否修改成功。
obclient> SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS WHERE UNIT_CONFIG_ID='1006'; +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT | +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | 1006 | S2_unit_config | 2022-11-03 17:13:29.021410 | 2023-01-12 10:28:57.606507 | 5 | 5 | 12884901888 | 38654705664 | 30000 | 30000 | 3 | +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ 1 row in set
根据查询结果,查看 MAX_CPU 与 MIN_CPU 已改成对应值,则表示执行成功。
多个租户使用了相同的资源规格的场景
如果多个租户共用了同一个资源规格,则不能通过简单的调大和调小资源规格来实现租户的扩容和缩容。因为一旦修改,将导致使用相同资源规格的所有租户同时进行了扩容或缩容。
此场景下,需要先创建独立的资源规格后,再为租户切换资源规格。
同样以租户 mq_t1 为例,示例如何调整 CPU 资源。
使用 root 用户登录到集群的 sys 租户。
obclient -h172.30.xxx.xxx -P2883 -uroot@sys -pxxxx -A进入
oceanbase数据库。obclient>use oceanbase;查询待操作租户所使用的
UNIT_CONFIG_ID和RESOURCE_POOL_NAME。obclient> 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 | | midas0_3790 | midas0_3790_pool_z3 | 1008 | | midas0_3790 | midas0_3790_pool_z2 | 1008 | | midas0_3790 | midas0_3790_pool_z1 | 1007 | | mq_t1 | mq_pool_01 | 1006 | | oracle_tenant1 | oracle_pool_01 | 1003 | +----------------+---------------------+----------------+ 6 rows in set查询待操作租户的资源规格详情。
obclient> SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS WHERE UNIT_CONFIG_ID='1006'; +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT | +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | 1006 | S2_unit_config | 2022-11-03 17:13:29.021410 | 2023-01-12 10:28:57.606507 | 5 | 5 | 12884901888 | 38654705664 | 30000 | 30000 | 3 | +----------------+----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ 1 row in set创建一个独立的新资源规格,新资源规格各项资源值为待修改的目标值。
创建比当前资源规格高的
new_S2_unit_config。obclient> CREATE RESOURCE UNIT new_S2_unit_config MAX_CPU = 5, MIN_CPU = 5, MEMORY_SIZE = '12884901888',LOG_DISK_SIZE = '38654705664',MAX_IOPS = 30000, MIN_IOPS = 30000, IOPS_WEIGHT=3;调整待操作租户的资源池使用新资源规格。
obclient> ALTER RESOURCE POOL mq_pool_01 unit='new_S2_unit_config';查询租户当前的资源规格,确认是否修改成功。
obclient> SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS WHERE UNIT_CONFIG_ID='1006'; +----------------+--------------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT | +----------------+--------------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ | 1006 | new_S2_unit_config | 2022-12-03 17:13:29.021410 | 2022-12-03 17:13:29.021410 | 5 | 5 | 12884901888 | 38654705664 | 30000 | 30000 | 3 | +----------------+--------------------+----------------------------+----------------------------+---------+---------+-------------+---------------+----------+----------+-------------+ 1 row in set
更多信息
通过
oceanbase.GV$OB_SERVERS视图查询资源上限值。关于
oceanbase.GV$OB_SERVERS视图的详细介绍,参见 GV$OB_SERVERS。示例如下:
obclient> SELECT * FROM oceanbase.GV$OB_SERVERS; +-------------+----------+--------------+----------+--------------+------------------+--------------+------------------+--------------+--------------+-------------------+-------------------+-----------------+--------------------+------------------+-------------------------+--------------+-------------------------+-----------------------+ | SVR_IP | SVR_PORT | ZONE | SQL_PORT | CPU_CAPACITY | CPU_CAPACITY_MAX | CPU_ASSIGNED | CPU_ASSIGNED_MAX | MEM_CAPACITY | MEM_ASSIGNED | LOG_DISK_CAPACITY | LOG_DISK_ASSIGNED | LOG_DISK_IN_USE | DATA_DISK_CAPACITY | DATA_DISK_IN_USE | DATA_DISK_HEALTH_STATUS | MEMORY_LIMIT | DATA_DISK_ABNORMAL_TIME | SSL_CERT_EXPIRED_TIME | +-------------+----------+--------------+----------+--------------+------------------+--------------+------------------+--------------+--------------+-------------------+-------------------+-----------------+--------------------+------------------+-------------------------+--------------+-------------------------+-----------------------+ | xx.xx.xx.47 | 2882 | sa128_obv4_1 | 2881 | 51 | 51 | 6.5 | 6.5 | 161061273600 | 19327352832 | 96569655296 | 57982058496 | 8858370048 | 1030284640256 | 8258584576 | NORMAL | 214748364800 | NULL | NULL | | xx.xx.xx.158 | 2882 | sa128_obv4_3 | 2881 | 51 | 51 | 19 | 22 | 182536110080 | 81604378624 | 386345730048 | 176093659136 | 65431142400 | 4249937248256 | 49568284672 | NORMAL | 214748364800 | NULL | NULL | | xx.xx.xx.43 | 2882 | sa128_obv4_1 | 2881 | 51 | 51 | 19 | 22 | 161061273600 | 81604378624 | 386345730048 | 176093659136 | 76705431552 | 4249937248256 | 49572478976 | NORMAL | 214748364800 | NULL | NULL | | xx.xx.xx.106 | 2882 | sa128_obv4_2 | 2881 | 51 | 51 | 19 | 22 | 161061273600 | 81604378624 | 386345730048 | 176093659136 | 65431142400 | 4249937248256 | 49729765376 | NORMAL | 214748364800 | NULL | NULL | | xx.xx.xx.81 | 2882 | sa128_obv4_2 | 2881 | 51 | 51 | 6.5 | 6.5 | 161061273600 | 19327352832 | 96569655296 | 57982058496 | 8858370048 | 1030284640256 | 8269070336 | NORMAL | 214748364800 | NULL | NULL | | xx.xx.xx.19 | 2882 | sa128_obv4_3 | 2881 | 51 | 51 | 5 | 5 | 182536110080 | 12884901888 | 96569655296 | 38654705664 | 5838471168 | 1030284640256 | 5649727488 | NORMAL | 214748364800 | NULL | NULL | +-------------+----------+--------------+----------+--------------+------------------+--------------+------------------+--------------+--------------+-------------------+-------------------+-----------------+--------------------+------------------+-------------------------+--------------+-------------------------+-----------------------+ 6 rows in set通过
oceanbase.GV$OB_UNITS视图查询集群中所有租户的资源分配情况。关于
oceanbase.GV$OB_UNITS视图的详细介绍,参见 GV$OB_UNITS。示例如下:
obclient> select SVR_IP,SVR_PORT,UNIT_ID,TENANT_ID,MAX_CPU,MIN_CPU,ceil(MEMORY_SIZE/1024/1024/1024) MEMORY_SIZE_G,MAX_IOPS,MIN_IOPS,IOPS_WEIGHT,ceil(LOG_DISK_SIZE/1024/1024/1024) LOG_DISK_SIZE_G,ceil(LOG_DISK_IN_USE/1024/1024/1024) LOG_DISK_IN_USE_G,ceil(DATA_DISK_IN_USE/1024/1024/1024) DATA_DISK_IN_USE_G,STATUS,CREATE_TIME from oceanbase.GV$OB_UNITS; +--------------+----------+---------+-----------+---------+---------+---------------+----------+----------+-------------+-----------------+-------------------+--------------------+--------+----------------------------+ | SVR_IP | SVR_PORT | UNIT_ID | TENANT_ID | MAX_CPU | MIN_CPU | MEMORY_SIZE_G | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT | LOG_DISK_SIZE_G | LOG_DISK_IN_USE_G | DATA_DISK_IN_USE_G | STATUS | CREATE_TIME | +--------------+----------+---------+-----------+---------+---------+---------------+----------+----------+-------------+-----------------+-------------------+--------------------+--------+----------------------------+ | xx.xx.xx.43 | 2882 | 1 | 1 | 5 | 2 | 32 | 10000 | 10000 | 1 | 32 | 26 | 11 | NORMAL | 2022-11-03 15:36:31.693272 | | xx.xx.xx.43 | 2882 | 1001 | 1001 | NULL | NULL | 4 | NULL | NULL | NULL | 10 | 8 | 16 | NORMAL | 2022-11-03 17:33:15.340453 | | xx.xx.xx.43 | 2882 | 1001 | 1002 | 12 | 12 | 29 | 60000 | 60000 | 6 | 87 | 37 | 21 | NORMAL | 2022-11-03 17:33:15.340453 | | xx.xx.xx.43 | 2882 | 1007 | 1007 | NULL | NULL | 2 | NULL | NULL | NULL | 4 | 0 | 0 | NORMAL | 2023-01-04 23:50:57.990761 | | xx.xx.xx.43 | 2882 | 1007 | 1008 | 5 | 5 | 11 | 30000 | 30000 | 3 | 33 | 2 | 1 | NORMAL | 2023-01-04 23:50:57.990761 | | xx.xx.xx.158 | 2882 | 3 | 1 | 5 | 2 | 32 | 10000 | 10000 | 1 | 32 | 26 | 11 | NORMAL | 2022-11-03 15:36:31.690365 | | xx.xx.xx.158 | 2882 | 1003 | 1001 | NULL | NULL | 4 | NULL | NULL | NULL | 10 | 8 | 16 | NORMAL | 2022-11-03 17:33:15.344035 | | xx.xx.xx.158 | 2882 | 1003 | 1002 | 12 | 12 | 29 | 15000 | 15000 | 1 | 87 | 26 | 21 | NORMAL | 2022-11-03 17:33:15.344035 | | xx.xx.xx.158 | 2882 | 1009 | 1007 | NULL | NULL | 2 | NULL | NULL | NULL | 4 | 0 | 0 | NORMAL | 2023-01-04 23:50:57.998665 | | xx.xx.xx.158 | 2882 | 1009 | 1008 | 5 | 5 | 11 | 30000 | 30000 | 3 | 33 | 2 | 1 | NORMAL | 2023-01-04 23:50:57.998665 | | xx.xx.xx.47 | 2882 | 1004 | 1007 | NULL | NULL | 2 | NULL | NULL | NULL | 4 | 3 | 6 | NORMAL | 2023-01-04 18:32:08.216823 | | xx.xx.xx.47 | 2882 | 1004 | 1008 | 5 | 5 | 11 | 30000 | 30000 | 3 | 33 | 3 | 1 | NORMAL | 2023-01-04 18:32:08.216823 | | xx.xx.xx.47 | 2882 | 1010 | 1009 | NULL | NULL | 1 | NULL | NULL | NULL | 2 | 2 | 3 | NORMAL | 2023-01-06 16:52:53.867318 | | xx.xx.xx.47 | 2882 | 1010 | 1010 | 1.5 | 1.5 | 5 | 15000 | 15000 | 1 | 17 | 2 | 1 | NORMAL | 2023-01-06 16:52:53.867318 | | xx.xx.xx.19 | 2882 | 1006 | 1007 | NULL | NULL | 2 | NULL | NULL | NULL | 4 | 3 | 5 | NORMAL | 2023-01-04 18:32:08.217376 | | xx.xx.xx.19 | 2882 | 1006 | 1008 | 5 | 5 | 11 | 30000 | 30000 | 3 | 33 | 3 | 1 | NORMAL | 2023-01-04 18:32:08.217376 | | xx.xx.xx.81 | 2882 | 1005 | 1007 | NULL | NULL | 2 | NULL | NULL | NULL | 4 | 3 | 6 | NORMAL | 2023-01-04 18:32:08.217390 | | xx.xx.xx.81 | 2882 | 1005 | 1008 | 5 | 5 | 11 | 30000 | 30000 | 3 | 33 | 3 | 1 | NORMAL | 2023-01-04 18:32:08.217390 | | xx.xx.xx.81 | 2882 | 1011 | 1009 | NULL | NULL | 1 | NULL | NULL | NULL | 2 | 2 | 3 | NORMAL | 2023-01-06 16:52:53.867944 | | xx.xx.xx.81 | 2882 | 1011 | 1010 | 1.5 | 1.5 | 5 | 15000 | 15000 | 1 | 17 | 2 | 1 | NORMAL | 2023-01-06 16:52:53.867944 | | xx.xx.xx.106 | 2882 | 2 | 1 | 5 | 2 | 32 | 10000 | 10000 | 1 | 32 | 26 | 11 | NORMAL | 2022-11-03 15:36:31.689252 | | xx.xx.xx.106 | 2882 | 1002 | 1001 | NULL | NULL | 4 | NULL | NULL | NULL | 10 | 8 | 16 | NORMAL | 2022-11-03 17:33:15.344232 | | xx.xx.xx.106 | 2882 | 1002 | 1002 | 12 | 12 | 29 | 15000 | 15000 | 1 | 87 | 26 | 21 | NORMAL | 2022-11-03 17:33:15.344232 | | xx.xx.xx.106 | 2882 | 1008 | 1007 | NULL | NULL | 2 | NULL | NULL | NULL | 4 | 0 | 0 | NORMAL | 2023-01-04 23:50:57.995715 | | xx.xx.xx.106 | 2882 | 1008 | 1008 | 5 | 5 | 11 | 30000 | 30000 | 3 | 33 | 2 | 1 | NORMAL | 2023-01-04 23:50:57.995715 | +--------------+----------+---------+-----------+---------+---------+---------------+----------+----------+-------------+-----------------+-------------------+--------------------+--------+----------------------------+ 25 rows in set
欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/




