基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
连接数相关参数与异常场景说明
更新时间:2026-06-03 03:01
本文主要说明了 OceanBase 数据库全链路中,连接数相关参数的以及相关异常场景说明。
适用版本
OceanBase 数据库 V2.x、V3.x 版本。
连接数相关参数说明
Druid 中连接数的相关参数 (建议采用 Druid1.2.8 及以上版本 )
maxActive:最大连接数。initialSize:初始创建的连接数。初始化发生在显示调用init方法,或者第一次getConnect时。minIdle:最少可以保留的空闲连接数。
OBProxy
client_max_connections:一个 OBProxy 支持的最大客户端连接数;可以通过修改 OBProxy 中的这个参数来调整数据库的最大连接数。该参数的范围为[0,65535],默认值为8192。
OBServer
max_connections:用于设置允许使用的 FD 最大值,当前仅 MySQL 模式支持该系统变量。其默认值为2147483647,取值范围为[1,2147483647]。该变量修改后,需要重启 OBServer 节点才能生效。一般不需要修改。max_user_connections:用于指定单个用户可以向 OBServer 节点建立的连接数。当前仅 MySQL 模式支持该系统变量。其默认值为0,表示不限制连接数;该变量修改后,需要重启 OBServer 节点才能生效。一般不需要修改。
连接数的设置依据
- 业务最大并发数。
- 业务架构。
- 数据库性能、负载情况。
- 连接池的配置。
- 租户个数。
空闲连接占用的资源
- OBProxy 一个文件句柄、端口号
- OBServer 一个文件句柄、端口号
- 占用 OBProxy 35k 内存
- 占用 OBServer 386k 内存
参数设置建议
如果使用 DNS 进行连接,并且需要调整最大连接数,那么要考虑单个 OBProxy 能满足所有连接数的情况。
Druid 连接池设置建议:
minIdle 、initialSize <= maxActive。连接数配置原则:1.5 至 2 倍的冗余,即
(maxActive * 应用进程个数(连接池个数) + 非连接池使用连接个数 ) * 租户数 * (1.5-2) < client_max_connections。
场景测试
场景 1:Druid 连接池满。
错误信息如下:
Exception in thread "main" com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60005, active 2, maxActive 2, creating 0场景 2:OBProxy 连接数满。
错误信息如下:
Too many sessions场景 3:OBServer 连接数满。
错误信息如下:
User 'root' has exceeded the 'max_user_connections' resource (current value: xxx)场景 4:OBServer 连接数满。
错误信息如下:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections