摘要:糟糕,資料庫例外不可用怎么辦?挺著急的,在線等,
本文分享自華為云社區《糟糕,資料庫例外不可用怎么辦?》,作者: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
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/539388.html
標籤:MySQL

