前提条件
- 仅限来源为天翼云RDS的MySQL数据库。
- 实例暂时仅支持MySQL 8.0以上版本。
- 已录入DMS中,且实例状态正常的数据库实例。
应用场景
场景 说明 慢SQL 防止慢SQL执行导致整体系统繁忙。 高频访问SQL 通过设置合适的限流参数,可以限制数据库中高频访问SQL的执行,避免这些SQL对数据库的性能和稳定性造成影响。 恶意攻击 防止恶意攻击者通过大量请求耗尽数据库资源,从而保护数据库的安全。
SQL限流范围
参数 说明 通过SQL语句限流 根据SQL语句的digest进行匹配从而限流。 通过SQL类型+库+表限流 对指定库表下特定类型的SQL进行匹配从而限流。
选择SQL类型,取值如下:SELECT 、 UPDATE 、 DELETE 、INSERT、REPLACE。
说明SQL语句计算digest时不会包含输入SQL语句结尾的";"
操作步骤
- 登录数据管理服务。
- 在左侧导航栏中,单击 运维管理 > 实例排行 ,进入实例排行页面。
- 在健康排行区域,点击目标实例名称进入详情页面,在页面上方点击会话管理页签。
- 在窗口上方单击会话管理页签,进入会话管理页面。
- 在会话管理页面下方,点击SQL限流页签,即可查看、创建、结束限流任务。
功能介绍
SQL限流功能可以控制数据库请求访问量和SQL并发量,保障服务的可用性。
注意主实例配置的限流规则,在只读实例上也同样生效,反之亦然。
创建任务
进入SQL限流页面后,点击创建任务按钮,在弹出的创建SQL限流任务对话框中可配置如下参数。
参数 属性 SQL范围 支持SQL语句、选择库表两种方式。
SQL语句:输入SQL语句进行限流。
选择库表:选择SQL类型(如SELECT 、 UPDATE 、 DELETE 、INSERT、REPLACE)、目标库、目标表进行限流。
最大并发数 自定义输入数值,设置SQL最大并发数。当同时执行的在SQL范围内的SQL数达到最大并发数时会触发SQL限流。
说明最大并发数设置为0时将限制SQL执行;非0时,所有被限流的SQL均会处于Concurrency control waiting状态,不返回错误。
执行方式 定时:定时自动开启和关闭限流任务,可设置时间周期、限流时间段。
手动:手动开启和关闭限流任务。
结束任务
进入SQL限流页面后,选择目标任务,点击结束按钮即可。