问题

最近收到了阿里云云数据库的报警信息,提示数据库连接数过高,通过监控可以看到,数据库的连接数升高了50%,其它指标保持正常。

分析及解决

通过阿里云后台的一键诊断中的会话管理可以看到占用大量连接的ip地址,可以看到100.104.205.90、100.104.205.83 和100.104.205.6 这三个ip占用了大量连接,可以看到并没有sql请求,只是单纯的保持数据库连接,通过查看阿里云文档和询问客服,可以得知这个ip地址是阿里云dms服务的地址,。

img.png img_1.png img_2.png

找到原因后就好解决了,可以使用SELECT pg_terminate_backend(pid)语句释放数据库连接,使用语句释放与这三个ip相关的数据库连接:select pg_terminate_backend(pid) from pg_stat_activity where client_addr in ('100.104.205.90','100.104.205.83') ,过了一会数据库连接恢复正常了。

小结

本文通过阿里云数据库连接过高的问题,分析遇到此类问题时如何排查并解决。

参考