非常非常抱歉!2016年3月7日15:44-16:39,由于阿里云RDS(云数据库)故障,造成全站不能正常访问,给您带来了很大很大的麻烦,恳请您的谅解!

故障是在15:44开始出现的,应用日志中出现大量这样的错误:

System.Data.SqlClient.SqlException (0x80131904): Logon failed for login '...' due to trigger execution.
当前命令发生了严重错误。应放弃任何可能产生的结果。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
...
System.Data.SqlClient.SqlException (0x80131904): Logon failed for login '...' due to trigger execution.
A severe error occurred on the current command. The results, if any, should be discarded.

15:55,我们向阿里云提交了紧急工单。

16:16,我们怀疑是数据库连接被RDS限制的原因,在工单中进一步提交了我们的怀疑。

16:17,20多分钟过去,阿里云客服竟然无任何响应,而且是紧急工单。无奈之下,进行一键投诉。

16:19,终于有客服响应了,本以为救星出现了,哪知是火上浇油!这时我们已经确认是数据库连接数限制的原因,可是客服的不专业让人有理说不清,当时那种“叫天天不应,叫地地不灵”的无助让人崩溃。

16:39,直到这时(已经过去了40多分钟),阿里云客服才确认是数据库连接数限制的问题并进行了调整,调整之后,立马恢复正常。

故障原因分析:

好端端的,为什么数据库连接数限制会被突然修改?

阿里云RDS实例对数据库连接数有着霸道的限制,这个限制只针对连接总数,却不区分是否活跃。对于访问量稍微大一点的网站,RDS的默认数据库连接数根本不够用,因为数据库连接池是网站应用的标配,每台服务器都要在连接池中保持一定数量的数据库连接,服务器越多,连接数就越多。为了解决这个问题,阿里云针对这样的客户对进行了特殊设置,我们就是这样的客户之一。但阿里云在发布RDS产品更新时,有时会不小覆盖会这个特殊设置,之前我们也遇到过一次,这次很可能是同样的原因。

来自阿里云的故障原因解释:

故障是因为我们在2015年12月22日对这个RDS实例进行了升级,升级时数据库连接数限制被自动重置为默认值(虽然我们在RDS控制台看到的一直是特殊设置值),今天下午正好连接数超过了默认限制值(虽然我们在RDS控制台系统资源监控中看到的连接数没有超过默认限制值,阈值报警没有触发)。

对故障根源的分歧:

阿里云认为错在我们使用了特殊设置,他们最多只需做好对特殊设置的兼容。

而我们认为错在RDS对数据库连接数限制的机制不合理,特殊设置是为之所迫,应该改进连接数限制机制,不要像现在这么霸道。

最新文章

  1. Myeclipse中添加XFire插件支持
  2. 利用DropDownList实现下拉
  3. c# 了解委托
  4. 锁定方式SDE中插入要素
  5. hibernate的三种状态(儿)
  6. 20160127 linux 学习笔记
  7. hdu2899 Strange fuction
  8. v4l2视频采集摄像头
  9. 《Django By Example》第八章 中文 翻译 (个人学习,渣翻)
  10. gzip: File too large错误
  11. Android Studio添加aar依赖的两种方式
  12. ubuntu14.04上引入thinkphp5类库遇到的一个问题
  13. nginx环境安装配置fail2ban屏蔽攻击ip
  14. web前端常用代码于面试等资源
  15. haproxy反向代理环境部署(http和https代理)
  16. [JSOI2008]球形空间产生器 (高斯消元)
  17. CAS Maven
  18. golang快速扫描
  19. centos7.2环境yum方式快速搭建lnmp环境nginx+mariadb+php-fpm
  20. Mysql中字符串正确的连接方法

热门文章

  1. 异步编程系列第01章 Async异步编程简介
  2. C#开发微信门户及应用(40)--使用微信JSAPI实现微信支付功能
  3. 浅谈Collection集合
  4. java中关键字this的使用
  5. Python 生成器与迭代器 yield 案例分析
  6. gRPC源码分析2-Server的建立
  7. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.2
  8. 《Web开发过滤Javascript、HTML的方法》
  9. React Native windows搭建记录
  10. 01背包问题python 2.7实现