抱歉!15:44-16:39阿里雲RDS故障造成全站不能正常訪問


非常非常抱歉!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對數據庫連接數限制的機制不合理,特殊設置是為之所迫,應該改進連接數限制機制,不要像現在這么霸道。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM