【故障公告】升級阿里雲 RDS SQL Server 實例故障經過


昨天晚上,我們使用的阿里雲 RDS SQL Server 2008 R2 實例突然出現持續 CPU 100% 問題,后來我們通過重啟實例恢復了正常(詳見故障公告)。但是在恢復正常后發現了新問題,這台 RDS 實例 IOPS 不夠用,必須要進行升級,而且當時過了 0 點也是升級的好時間,再加上我們對升級到更高版本的 SQL Server 垂涎已久 —— 因為最新的 EF Core 3.0 不支持生成 SQL Server 2008 的分頁 SQL (UseRowNumberForPaging),只是我們還沒有確定新版 SQL Server 是自己搭建還是繼續使用阿里雲 RDS ,加上現在的 RDS 實例是包年買的,所以近期沒有安排升級計划。現在迫不得已+順水推舟,再加上阿里雲 RDS 支持直接從 SQL Server 2008 R2 升級到 SQL Server 2016,於是我們臨時決定進行升級操作。

升級操作本身很簡單,點幾下按鈕,支付一下費用,整個升級過程由阿里雲 RDS 自動完成,而且升級期間不影響現已實例的正常訪問。我們唯一擔心的是升級后新 SQL Server 實例要重新編譯大量 SQL 語句,預熱時間比較長,但是我們當時升級的話,有一夜時間進行預熱,問題應該不大。於是,在 00:22 啟動了升級,啟動升級后,從阿里雲那得知由於我們的數據庫比較大,升級時間比較長,建議我們早上再來看升級是否成功。我們又多了一份擔心,假如到明天早上也完成不了升級,到訪問高峰時舊實例支撐不住怎么辦,阿里雲說如果到時真的完成不了升級,他們會想辦法讓就實例支撐住,於是就安心去睡覺了。

今天一大早上起床一看,升級已經完成了,而且比預想的快很多,只用了3個小時多一點。

這時發現有些不對勁,打開很多頁面速度慢,應用日志中很多超時錯誤,升級后的 RDS 實例 CPU 占用居高不下。

System.Data.SqlClient.SqlException (0x80131904): Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding

對於這個異常情況,我們當即采取了主備切換的操作,操作后發現主備切換一直停在“臨時備份任務 25%”,切換無法完成,實例狀態一直處於“主備庫切換中”。

這時數據庫超時問題變得越來越嚴重,博客后台保存操作多數會超時。

向阿里雲反饋,阿里雲排查后發現升級后備庫的鏡像沒有搭建好,無法進行主備切換,阿里雲建議我們重啟實例。

根據阿里雲的建議,我們嘗試進行了重啟實例的操作,但由於實例處於“主備庫切換中”狀態,根本不允許我們進行這個操作。

於是授權給阿里雲重啟,但重啟就好了一會,接着又出現大量數據庫操作超時問題。

8:49 從阿里雲那得知 DBA 正在重建備庫,主備切換要等備庫重建完成才能進行。

這時已經別無選擇,只剩下最后一招——升級 RDS 實例配置,悲劇的是,由於實例處於“主備庫切換中”狀態,也根本不允許變更配置操作。從阿里雲得到進一步確認,升級配置是主備一起升,也必需要等到備庫重建完成。

此時進入了最無奈無助的局面,眼睜睜地看着整個園子全面故障,卻一點辦法沒有,只能沒有任何耐心地“耐心”等待備庫重建,更讓人心碎的是這一等就等到 10:40 左右。

備庫重建完成后,我們立即嘗試升級配置,結果發現升級配置的計費有問題,配置沒有任何變動的情況下,竟然會產生1萬多的費用,似乎升級不是按我們已有的 SQL Server 2016 配置進行計算,而且按照之前 SQL Server 2008 的配置進行計算。這時,我們想到之前想嘗試的主備切換還沒做,於是,改為先進行主備切換。

11:05 進行了主備切換,11:10 主備切換完成后,全部恢復了正常,飛快的速度終於又回來了。

主備切換后,想眼看一下備庫的 CPU 占用情況,結果發現 RDS 控制台針對備庫的監控數據一片空白,阿里雲的監控功能偏偏在這個時候出問題了。雖然恢復了正常,看不到監控數據,我們還是有些忐忑不安。

下午 13:30 之后開始進入下午的訪問高峰時,訪問速度又開始變慢了,問題又開始出現了。看來是當前的 RDS 實例配置不堪重負,必須要升級配置,雖然現在升級計費有問題,先升級再說,但是接下來出現的問題讓我們傻眼了,在升級購買時卻提示“詢價失敗,請聯系客服同學”,屋漏偏逢連夜雨,升級配置也無法進行,只能提交工單,干等阿里雲解決。

14:40 左右,阿里雲解決了監控問題,備庫的 CPU 也是居高不下,的確是升級后的 RDS 實例配置不夠,唯有升級配置,但是升級配置的功能也出了問題。

現在唯有等阿里雲解決無法升級 RDS 實例配置的問題。

非常非常抱歉,沒想到這次數據庫升級也是我們搬上阿里雲到目前唯一一次數據庫升級,竟然引發如此大的故障,給大家帶來這么大的麻煩,非常愧疚。

【更新】

16:30 阿里雲解決了升級 RDS 配置的問題,我們完成了購買,RDS 實例已經開始升級操作。

17:02 升級全部完成,16:52 開始  CPU 占用大幅下降。

17:10 確認升級后全面恢復正常。

 


免責聲明!

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



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