【问题现象】业务报错:too many connections for role "%s"
【问题原因】该报错是由于该用户设置了最大连接数,该用户达到最大连接数导致报错,可以通过如下语句查看最大连接数设置及当前的连接数:
test_db=# select rolname,rolconnlimit from pg_authid where rolname = 'lkp';
rolname | rolconnlimit
--------- --------------
lkp | 10
(1 row)
postgres=# select coorname,count(1) from pgxc_stat_activity where usename = 'lkp' group by coorname order by 2 desc;
coorname | count
-------------- -------
coordinator1 | 10
(1 row)
rolconnlimit为-1表示不限制,大于等于0表示会对该用户的连接数进行限制,连接数超过该值会报错。
【解决方法】可使用如下方法任选一种解决
1. 使用pg_terminate_backend清理无用连接
2. 使用clean connection强制清理:
clean connection to all for database database_name to user lkp;
3. 可适当调大该连接限制
alter user lkp connection limit 20;
感谢精彩分享
-- 高级云网管
感谢分享
感谢分享