【故障公告】升級阿里雲 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,因而咱們臨時決定進行升級操做。html

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

今天一大早上起牀一看,升級已經完成了,並且比預想的快不少,只用了3個小時多一點。github

這時發現有些不對勁,打開不少頁面速度慢,應用日誌中不少超時錯誤,升級後的 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%」,切換沒法完成,實例狀態一直處於「主備庫切換中」。阿里雲

這時數據庫超時問題變得愈來愈嚴重,博客後臺保存操做多數會超時。3d

向阿里雲反饋,阿里雲排查後發現升級後備庫的鏡像沒有搭建好,沒法進行主備切換,阿里雲建議咱們重啓實例。日誌

根據阿里雲的建議,咱們嘗試進行了重啓實例的操做,但因爲實例處於「主備庫切換中」狀態,根本不容許咱們進行這個操做。code

因而受權給阿里雲重啓,但重啓就行了一會,接着又出現大量數據庫操做超時問題。server

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

這時已經別無選擇,只剩下最後一招——升級 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 確認升級後全面恢復正常。

相關文章
相關標籤/搜索