首批通过分布式安全可靠测评,为关键业务系统打造
设置租户最大连接数
更新时间:2026-04-01 14:22:14
由于连接会占用一定的资源,大量的长连接会影响小规格租户的稳定性,OceanBase 数据库支持通过配置项或系统变量为租户设置最大连接数。
与租户最大连接数相关的配置项或变量如下:
max_connections系统变量
max_connections用于控制整个租户的最大连接数,当前仅 MySQL 模式支持该系统变量。其默认值为2147483647,取值范围为 [1,2147483647]。该变量修改后,需要重启 OBServer 节点才能生效。max_user_connections系统变量
max_user_connections用于控制租户内单个用户的最大并发连接数,当前仅 MySQL 模式支持该系统变量。其默认值为0,表示不限制连接数;当值大于0时,以实际设置的值为准,取值范围为 [0,4294967295]。该变量修改后,需要重启 OBServer 节点才能生效。_resource_limit_max_session_num租户级隐藏配置项
_resource_limit_max_session_num用于控制用户租户内普通用户的最大并发连接数,该配置项修改后立即生效,不需要重启 OBServer 节点。其默认值为0,取值范围为 [0,1000000]。该配置项一般不需要修改。当隐藏配置项
_resource_limit_max_session_num的值大于0时,以实际设置的值为准;当隐藏配置项_resource_limit_max_session_num的值为0时,系统内部会自动按照一定的规则计算出最大连接数。具体计算规则如下:用户租户并发连接数上限 = MAX(100, 租户实际内存 * 5%/(100 KB))
其中:
租户实际内存:创建租户时分配的资源池中资源单元的内存(
memory_size)减去对应 Meta 租户的内存后的值。用户租户与其对应的 Meta 租户的内存分配说明,参见 租户内部内存管理。100:连接数下限。100 KB:根据经验计算出的单个会话可能占用的内存。
根据该算法,如果用户租户的内存规格(
memory_size)为 3 GB,对应 Meta 租户的内存为 1 GB,则租户实际内存为3 GB - 1 GB = 2 GB,则该租户的最大连接数为MAX(100, 2 GB * 5%/(100 KB))= 1000。
注意事项
在 OceanBase 数据库中,名称以 "_" 开头的配置项称为隐藏配置项,仅供开发人员在故障排查或紧急运维时使用。
使用限制
仅 MySQL 租户可通过系统变量
max_connections和max_user_connections调整租户或租户内用户的最大连接数。为了防止因出现大量长连接而导致的运维人员无法登录的问题,配置项
_resource_limit_max_session_num的值对sys租户或用户租户的管理员用户(MySQL 模式默认为root用户,Oracle 模式默认为SYS用户)不受限。
操作步骤
sys租户或用户租户的租户管理员登录到数据库。通过视图查看当前租户相关的最大连接数。
示例如下:
obclient [oceanbase]> SELECT * FROM GV$OB_PARAMETERS WHERE NAME LIKE '_resource_limit_max_session_num'\G *************************** 1. row *************************** SVR_IP: 172.XX.XX.XX SVR_PORT: 2882 ZONE: zone1 SCOPE: TENANT TENANT_ID: 1004 NAME: _resource_limit_max_session_num DATA_TYPE: NULL VALUE: 0 INFO: the maximum number of sessions that can be created concurrently SECTION: RESOURCE_LIMIT EDIT_LEVEL: DYNAMIC_EFFECTIVE 1 row in set有关视图
GV$OB_PARAMETERS的更多介绍,请参见 GV$OB_PARAMETERS。设置租户的最大连接数。
Oracle 租户
obclient [SYS]> ALTER SYSTEM SET "_resource_limit_max_session_num" = 100;MySQL 租户
obclient [(none)]> SET GLOBAL max_connections = 1000; obclient [(none)]> SET GLOBAL max_user_connections = 50; obclient [(none)]> ALTER SYSTEM SET _resource_limit_max_session_num = 100;说明
如果当前租户同时设置了
_resource_limit_max_session_num、max_user_connections和max_connections的值,则对于某个普通用户,其并发连接数只要达到其中一个值,即无法再建立新的连接;对于管理员用户,其并发连接数只要达到max_user_connections或max_connections的其中一个值,即无法再建立新的连接。
相关文档
关于配置项和变量的更多介绍,请参见如下信息: