1.SQL语句查看连接数
gaussdb=> SELECT count(*) FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;
count
-------
40
(1 row)
2.查看现有最大连接数
gaussdb=> SHOW max_connections;
max_connections
-----------------
1024
(1 row)
3.异常处理
如果显示的连接数接近数据库的最大连接数max_connections,则需要考虑清理现有连接数或者增加新的连接数。
1)执行如下SQL语句,查看state字段等于idle,且state_change字段长时间没有更新过的连接信息。
SELECT * FROM pg_stat_activity where state='idle' order by state_change;
2)释放空闲的连接数。
--查看每个连接,并与此连接的使用者确认是否可以断开连接,或执行如下SQL语句释放连接。
--其中,pid为上一步查询中空闲连接所对应的pid字段值。
gaussdb=# SELECT pg_terminate_backend(140390132872976);
3)增加最大连接数。
gs_guc set [-Z datanode] -D /gaussdb/data/dbnode -c "max_connections= 800"
4)重启数据库服务使新的设置生效
gs_om -t stop && gs_om -t start