数据仓库服务 GAUSSDB(DWS)-连接GaussDB(DWS)数据库时,提示客户端连接数太多:处理方法
处理方法
可优先通过如下方法进行应急处理:
- 临时将所有non-active的连接释放掉。
1
SELECT PG_TERMINATE_BACKEND(pid) from pg_stat_activity WHERE state='idle';
- 在 GaussDB (DWS)控制台设置会话闲置超时时长session_timeout,在闲置会话超过所设定的时间后服务端将主动关闭连接。
session_timeout默认值为600秒,设置为0表示关闭超时限制,一般不建议设置为0。
session_timeout设置方法如下:
- 登录GaussDB(DWS) 管理控制台。
- 在左侧导航栏中,单击“集群管理”。
- 在集群列表中找到所需要的集群,单击集群名称,进入集群“基本信息”页面。
- 单击“参数修改”页签,修改参数“session_timeout”,然后单击“保存”。
- 在“修改预览”窗口,确认修改无误后,单击“保存”。
如果上述方式未能满足业务需求,可继续参考以下方式进行处理:
当前数据库连接已经超过了最大连接数场景处理方式:
- 查看CN上的连接来自哪里,总数量以及是否超过当前max_connections(默认值CN节点为800,DN节点为5000)。
1
SELECT coorname, client_addr, count(1) FROM pgxc_stat_activity group by coorname, client_addr order by coorname;
- 判断是否可以调大max_connections,调整策略如下:
- 调大CN的max_connections会造成并发连接到DN的查询变多,所以需要同步调大DN的max_connections和comm_max_stream。
- CN/DN的max_connections一般按照原来的2倍调大,原值比较小的集群可以调节到4倍。
- 为避免在准备步骤失败,max_prepared_transactions的值不能小于max_connections,建议至少将其设置为等于max_connections,这样每个会话都可以有一个等待中的预备事务。
- 若上一步中判断可以调整max_connections,则可通过管理控制台调整最大连接数max_connections。
在管理控制台上,集群“基本信息”页面,单击“参数修改”页签,修改参数“max_connections”为合适的值,然后单击“保存”。
针对设置了用户最大连接数的场景处理方式:
在创建用户时由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接设定,也可以在设定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。
- 使用PG_ROLES视图查看指定用户的最大连接数。
1 2 3 4 5
SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='role1'; rolname | rolconnlimit ---------+-------------- role1 | 10 (1 row)
- 修改用户的最大连接数。
1
ALTER ROLE role1 connection limit 20;
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- GaussDB连接数据库_GaussDB数据库连接_高斯数据库连接数据库-华为云
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- GaussDB数据库连接_GaussDB连接数据库_高斯数据库数据库连接-华为云
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控