摘要:糟糕,資料庫異常不可用怎麼辦?挺著急的,線上等。 本文分享自華為雲社區《糟糕,資料庫異常不可用怎麼辦?》,作者:GaussDB 資料庫。 隨著數字化轉型的加速,數據量爆髮式增長,用戶對資料庫運維能力要求更高,實現對資料庫的高效智能管理,尤其是業務異常時,資料庫運維平臺能自動定位故障並修複,或者 ...
摘要:糟糕,資料庫異常不可用怎麼辦?挺著急的,線上等。
本文分享自華為雲社區《糟糕,資料庫異常不可用怎麼辦?》,作者:GaussDB 資料庫。
隨著數字化轉型的加速,數據量爆髮式增長,用戶對資料庫運維能力要求更高,實現對資料庫的高效智能管理,尤其是業務異常時,資料庫運維平臺能自動定位故障並修複,或者提供有價值信息,幫助客戶快速定位解決問題。
華為雲資料庫團隊打造的RDS for MySQL智能DBA助手,為資料庫管理人員提供了一站式資料庫運維方案,能夠幫助用戶快速處理異常,保持業務穩定運行。近期,我們新上線了自治限流功能,通過限流非核心業務SQL來保障核心業務穩定運行,下麵將為您帶來該項業界領先的功能的詳細解讀。
在遭遇異常流量高峰時,如何處理?
在實際運維場景中,客戶因為業務變更或者業務高峰期會帶來流量高峰,導致系統指標異常,實例CPU飆升近100%,會話SQL處理變慢,活躍連接數增加,資料庫響應異常甚至不可用。可能的原因有以下兩個方面:
- SQL問題:SQL執行效率慢,如對無主鍵、無索引的表進行查詢操作時,CPU和 IO被打滿。
- 流量問題:突發的流量急劇上升,資料庫容量達到瓶頸,影響正常業務。
解決方案:
針對上述問題,一般會採用兩種方式來處理:
方式一:先分析異常SQL,定位後手動Kill會話
方式二:簡單粗暴,重啟資料庫。
但面對複雜問題,傳統解決方案往往無法從根本上解決,定位解決問題花費時間長,導致業務受損。針對這一挑戰,業界採用限流的方式來處理,不區分業務,即不會區分限流SQL所在的庫或者客戶端用戶,這可能導致無差別的kill會話,核心業務受損。
我們今天介紹的自治限流功能是如何應對這一潛在風險呢?
自治限流,指的是通過預先設置限流策略,自動限定執行SQL的併發度,通過小部分業務受損,保障核心業務的正常運行。具體來說,可以通過以下三個策略來進行流控:
分庫、分用戶設置限流範圍
自治限流功能支持分庫、分用戶兩種方式設置,客戶根據業務情況,識別核心業務庫和客戶端用戶,按需選擇相應的限流方式。
- 按庫設置:根據業務重要程度,選擇對特定的一個或者多個庫進行限流,預設不區分庫名。
- 按用戶名設置:根據不同用戶業務差異,選擇對特定的一個或者多個用戶進行限流,預設不區分用戶。
設置限流時間:
通過設置限流時間窗(即自治限流功能只在該時間段生效)和每次最大限流時長(即自治限流生效後持續時長),方便定位SQL異常,請註意:同一天只在該時間窗內生效一次。
設置限流策略
條件1:根據業務情況,設置CPU利用率大於多少 【且/或】 活躍會話數大於多少,且上述條件持續時間大於多少分鐘,會觸發限流。
條件2:設置允許的最大活躍併發數,當前活躍會話數大於最大活躍會話數時,會將會話數清理到小於最大活躍會話數。
設置界面如下:
完成上述設置後,自治限流功能可以自動檢測客戶實例異常,觸發限流策略後,根據配置的限流範圍和時間,自動進行分庫分用戶限流處理,在保證核心業務SQL穩定運行的前提下,限制引發CPU飆升的新上業務SQL,帶來活躍會話數逐漸降低,CPU下降到正常值,QPS恢復到業務正常水平,資料庫實例恢復正常。
流量高峰常常是不可預測的,這給運維帶來非常大的挑戰和工作負擔。華為雲資料庫自治限流功能,通過分庫與分用戶限流方式,自動檢測資料庫異常,並及時進行限流處理,保障核心業務的穩定運行,極大減輕了DBA的運維壓力,使其更聚焦數據架構設計以及數據價值挖掘等核心工作。目前該功能已上線,歡迎大家體驗。https://www.huaweicloud.com/product/mysql.html