基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
变更租户规格会导致租户最大仅支持 100 个连接
更新时间:2026-06-03 03:01
问题现象
客户端非 root 用户登录失败,服务端有如下日志。
too much sessions(ret=-4153, tenant_id=1002, cur_connections=100, max_sess_num=100, tenant_name_=t4znxf8or2c80, user_name_=vivordsadmin)
问题原因
从服务端日志可以看到租户已创建 100 个连接且 max_sess_num 为100,这是新建连接失败的直接原因。
租户连接数的上限的计算规则如下:
- 租户配置项
_resource_limit_max_session_num为 0 时(0 为默认值),根据租户内存规格计算上限,公式为:max(100, memory_size * 0.05/100K)。 _resource_limit_max_session_num不为 0 时,就用该配置项的值作为上限。- sys 租户或者用户租户的 root 用户不受上限约束。
按规则预期最大连接数应该是 1.6w。上述的 100 连接数是不符合预期,原因是租户变更规格时,会按新的 memory_size 调整 max_sess_num。 总之,租户变更规格(无论 CPU 还是 memory)就会导致非 root 用户最多只能用到 100 个连接。
问题的风险及影响
超过 100 以上的连接数无法创建,业务报错。
影响版本
OceanBase 数据库 V4.1.0 BP3(oceanbase-4.1.0.2-103000072023081111)版本。
解决方法及规避方式
配置租户级配置项
_resource_limit_max_session_num为一个极大值,比如 100w,建议 sys 租户下用tenant=all处理所有租户。obclient> ALTER SYSTEM set _resource_limit_max_session_num=1000000 tenant=all;升级到问题已修复版本,目前已修复的版本包含 V4.1.0 BP3 Hotfix1(oceanbase-4.1.0.2-103010012023082514) 及之后版本。