有奖捉虫:云通信与企业服务文档专题,速来> HOT
DBbrain 提供 SQL 限流功能,您可以通过创建 SQL 限流任务,自主设置 SQL 类型、最大并发数、限流时间、SQL 关键词,来
限制数据库的请求访问量和 SQL 并发量,进而达到服务的可用性,不同的任务之间不会发生冲突。
SQL 限流功能还支持查看、关闭和删除 SQL 限流任务。

支持版本

MySQL:仅支持 MySQL5.7-20200331及以上版本、MySQL5.6-20200915及以上版本、MySQL8.0-20211202及以上版本。
TDSQL-C for MySQL:仅支持 MySQL5.7-2.1.9以上版本、MySQL8.0-3.1.5及以上版本。

操作步骤

创建 SQL 限流任务

1. 登录 DBbrain 控制台
2. 在左侧导航栏,选择诊断优化。
3. 在页面上方选择数据库类型和实例 ID,选择实时会话页签。
4. 实时会话页面,选择 SQL 限流页签。



5. 单击创建任务,根据页面提示配置任务参数,配置完成后,单击确定



参数说明如下表所示。
参数
说明
SQL 类型
包括 SELECT、UPDATE、DELETE、INSERT、REPLACE。
最大并发数
为 SQL 最大并发数,当包含关键词的 SQL 达到最大并发数时会触发 SQL 限流策略。如果该值设为0,则表示限制所有匹配的 SQL 执行。
执行方式
包括定时关闭手动关闭
定时关闭:选择定时关闭后,需设置任务限流时间,提交任务后即开始执行,执行时间结束自动关闭任务。任务执行过程中也支持在任务列表操作列手动关闭任务。
手动关闭:选择手动关闭后,提交任务后将一直执行,直到在任务列表的操作列手动关闭任务,任务才可终止。
SQL 关键词
为需要限流的 SQL 关键词。
可输入 SQL 语句。系统将以英文空格、逗号和换行符为分隔符,自动拆分关键词,多个关键词之间的关系为“逻辑与”,不区分先后顺序。
说明:
由于 SQL 关键词按照字符串匹配,且不区分关键词的顺序及是否指代库名表名,所以 SQL 关键词输入的更多,限流越精确。
若需要分库分表限流,SQL 关键词中请输入库名前缀或表名前缀。例如,当需要对存在相同前缀的多个表(例如,user_01、user_02、user_03等)进行限流时,SQL 关键词设置示例如下:



由于 SQL 关键词按照字符串匹配,所以类似以下 SQL 语句也可能会触发上述指定关键词的限流任务。
select *,user_ from server;
当实例达到限流任当务设置的最大并发数时,含 SQL 的关键词的 SQL 语句被拒绝执行。
SQL 限流中被拒绝语句的错误码显示为:ERROR 4513: SQL rejected by CDB_SQL_FILTER

查看、关闭和删除 SQL 限流任务

1. 进入 SQL 限流任务列表。
2. 查看、关闭和删除 SQL 限流任务。



列表参数说明如下表所示。
参数
说明
类型
包括 SELECT、UPDATE、DELETE、INSERT、REPLACE。
状态
包括运行中已完成已终止
运行中:任务正在执行中。
已完成:执行方式为自动关闭的任务,在指定的任务限流时间结束后自动关闭。
已终止:分为以下两种情况。
执行方式为自动关闭的任务,在指定的任务执行时间结束前手动关闭。
执行方式为手动关闭的任务被手动关闭。
关键词
创建 SQL 限流任务时设置的关键词。
开始时间
限流任务开始执行时间。
剩余时间
限流任务剩余的限流时间。
当创建任务时任务执行时间为自动关闭
当状态为运行中剩余时间 = 限流时间(创建任务时设置的)- 开始时间 (任务列表中显示的)
当状态为已完成已终止,则剩余时间为0。
当创建任务时任务执行时间为手动关闭:剩余时间显示--。
最大并发数
创建 SQL 限流任务时设置的最大并发数。
来源
包括用户发起自治事件
用户发起:为实时会话页面创建的 SQL 限流任务。
自治事件:为自治中心页面配置自治服务后触发自动限流自治任务。自治中心详细介绍及操作请参见 自治服务
操作
查看任务详情:在操作列单击详情,查看任务的开始时间、执行时间、结束时间、已拒绝 SQL 数。
关闭任务:当需要终止状态为运行中的任务时,可在操作列单击关闭
删除任务:当需要删除状态为已终止已完成的任务时,可单个或批量删除任务。
单个删除:在任务对应的操作列单击删除
批量删除:在热点更新保护任务列表选择一个或多个待删除的任务,在任务列表上方单击删除