日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

CloudDBA新功能上线--SQL过滤/限制/防火墙

發布時間:2025/3/8 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CloudDBA新功能上线--SQL过滤/限制/防火墙 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 前言

CloudDBA是阿里云數據庫團隊開發的智能診斷和優化平臺,可以幫助用戶更好使用阿里云數據庫。
CloudDBA不斷提升算法和規則,更好的匹配更多用戶場景,剛剛上線了SQL過濾功能,用來解決某類SQL給系統帶來的沖擊。

2 功能描述

匹配用戶設置的關鍵字和并發數,對某類SQL(SELECT/UPDATE/DELETE)進行按并發數限流,當這一類SQL的并發小于并發數的進到Server層,大于并發數的丟棄。
該功能只能用來救急,不適合長時間運行。

3 對業務的影響

3.1 收益

限制了問題SQL后,保障DB Server端能正常響應正常業務的語句,保障大部分的業務正常運轉

3.2 弊端

如果設置了SQL防火墻,該SQL被限制后,應用端會收到1317錯誤,即

query execution was interrupted

4 適用場景

如果業務方能夠接受舍小(小部分業務損失)保大(大部分業務正常運轉),可以進行限流;
如果不能接受上述報錯,就要接受整個業務被拖垮的可能。

4.1 能解決的場景

4.1.1 某類SQL并發急劇上升,影響正常業務

比如緩存穿透,或者異常調用,可能會造成原來并發不大的SQL語句,并發量突然上升

4.1.2 有數據傾斜SQL,影響正常業務

比如大促時拉取某個特別大的數據,造成整體系統繁忙

4.1.3 未創建索引SQL,影響正常業務

比如新上線SQL調用量特別大,又沒有創建索引,造成整體系統繁忙

4.2 處理誤區

4.2.1 切換主備

以前碰到上述情況,見有的運維人員是切換主備嘗試解決上述問題,主備的配置是一樣的,如果主庫有問題,同樣的請求到備庫也是同樣的問題,所以切換是解決不了問題的。

4.2.2 kill問題語句

kill語句是可以減少系統壓力,未嘗不是一種處理手段。但是,請求是不斷進來的,不停kill語句手都酸了吧?

4.3 可以嘗試的解決方法

上面提到這個功能只是應急手段那么如何才能解決該類問題呢?

  • 提高緩存命中率
  • 使用只讀實例
  • 快速加索引

5 使用方式

5.1 路徑

RDS控制臺->找到具體實例->CloudDBA->問題診斷->SQL過濾

5.2 找到要限制的SQL語句

通過"問題診斷"里面,觀察到某類SQL執行特別慢,并發又特別多時,這條語句可能就是問題SQL,經過再三確認(根據經驗,跟業務開發,跟老板)后就可以限制并發啦。
例如:

想限制下面這類語句:

SELECT * FROM sbtest4 WHERE top_cmt_id=99738 AND status in (1,3) and parent_cmt_id >= 0 order by add_time desc limit 0,20

就要執行下面的步驟

5.3 創建過濾規則

5.3.1 SQL類型

是限制SELECT語句還是限制UPDATE語句還是限制DELETE語句,安全起見默認支持SELECT語句,建議您也優先設置SELECT語句

5.3.2 最大并發度

該次限制的SQL最大允許在Server端跑多少個

5.3.3 限流時間

允許SQL過濾最大執行時間;超過了指定時間,就會自動終止該限制

5.3.4 SQL關鍵詞

SQL過濾的匹配關鍵詞,多個關鍵詞之間以~分隔,不要有空格之類的特殊字符
接著上面的例子,SQL關鍵詞我可以這樣拼寫

SELECT~FROM~sbtest4~WHERE~top_cmt_id~status~parent_cmt_id~order~add_time~desc

5.4 重置/終止過濾規則

當遇到設置規則錯誤,或者想提前終止SQL過濾,可以執行該操作。

5.5 查看過濾歷史記錄

凡是對該實例執行過SQL過濾功能的,都可以在這里查到記錄,方便排查問題。

6 注意事項

  • 該功能只能用來救急,不適合長時間運行
  • 安全起見默認支持SELECT語句,建議您也優先限制SELECT語句
  • 該功能只能運行在MySQL 5.6版本
  • 該功能是內核層面上的改進,無論是使用高安全鏈路還是普通鏈路都可以使用
  • 可以設置多個SQL過濾(根據不同的關鍵詞)
  • 如果同一類型的SQL關鍵詞設置了多次,限制的并發按這幾個并發的和限制
  • 要限制的SQL語句匹配越嚴格越精準,對業務影響最小

如果設置的不夠精準,例如SQL關鍵詞是

SELECT~FROM~sbtest4

那匹配上述規則的SQL語句,哪怕是正常業務的,也可能被限制掉了

  • 被限制后的SQL在應用端會出現
1317 query execution was interrupted
  • 該限制只對被設置的實例生效,不影響主賬號下面的其他實例
  • 該限制規則只對新鏈接有效,如果想使用該規則,在設置過規則后,需要把老鏈接手動kill(在CloudDBA里可做)

如果您在使用CloudDBA過程中有什么問題,或者好建議,歡迎進群

總結

以上是生活随笔為你收集整理的CloudDBA新功能上线--SQL过滤/限制/防火墙的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。