云计算之路-阿里云上:RDS数据库连接数过万引发故障,主备库切换后恢复正常

 

万码学堂,电脑培训,计算机培训,Java培训,JavaEE开发培训,青岛软件培训,软件工程师培训

非常抱歉!今天 12:03-12:52 ,由于数据库连接数异常突增超过1万,达到了阿里云RDS的最大连接数限制,影响了全站的正常访问。由此给您带来麻烦,请您谅解。

在发现数据库连接数突增的问题后,我们一开始怀疑可能是我们的某些应用中产生太多ADO.NET连接引起的,但是对嫌疑的应用们进行重启后,连接数依然高居不下。

后来,我们回想起去年9月份遇到的一次数据库问题,当时很多数据库查询超时,IOPS突增达到RDS的最大限制。开始我们也是从应用层面下手,但怎么也解决不了,后来实在没办法,试了试主备库切换,切换后立马神奇地恢复正常,然后就一直相安无事,直到今天。

今天我们再试试这一招吧!12:38开始进行主备库切换,12:52左右连接数降到了1000以下,全站访问恢复正常,这一招又一次神奇地发挥了作用。

恢复正常后,我们分析了一下对应的应用日志。

在出现故障之前应用日志就已经记录了一些数据库查询超时:

System.Data.SqlClient.SqlException (0x80131904): Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.  This failure occured while attempting to connect to the Principle server. ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out

在故障期间出现了大量下面的错误日志:

1)无法与阿里云RDS建立TCP连接

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error&n
        
		

网友评论