背景:因工作需要,在自己电脑上安装了虚拟机进行部署服务,服务是通过连接池连接其他服务器的数据库,但是动不动出现数据库连接数满了的情况
分析:因为在虚拟机部署的服务过多,每次动不动导致自己电脑卡顿,于是直接对电脑进行重启,没有对虚拟机的服务先进行停止后,再进行关机。因此可能会出现关机后,并未释放连接的可能。
场景复现:在虚拟机上查询当前数据库连接数详细情况
select * from v$session
然后查询虚拟机的连接数
select count(1) from v$session where machine = 'localhost.localdomain'
第一次查询count是42,因为之前已经出现了一次直接关机的情况,然后我重新启动虚拟机重启服务,再次查询,连接数到了83,停掉服务后连接数再次降到42。再起重启服务后,直接关机,连接数在83并不会下降。
解决方案:在虚拟机中需要先停止服务,再去停止虚拟机,否则可能会出现连接数无法释放的情况,具体原因暂时还未分析清楚,仅此博客记录此问题