更新时间:2024-12-31 GMT+08:00

新建SQL限流规则

操作场景

SQL限流是指设置原始SQL语句或者Query ID,当所匹配的SQL语句超过设置的最大并发数时,数据库实例会拒绝执行此SQL。从而解决SQL并发数过高导致的实例不稳定问题。使用华为云自研插件rds_pg_sql_ccl可以实现RDS for PostgreSQL的SQL限流能力。

主要的使用场景有:

  • 业务量突增:通过限制某类SQL的执行保障实例的稳定性。
  • 保障核心任务:通过限制其他SQL的执行从而降低资源的消耗保障核心任务的顺利完成。

版本限制

SQL限流支持的版本如下:

  • RDS for PostgreSQL 15版本,对应的小版本为15.4及以上版本。
  • RDS for PostgreSQL 14版本,对应的小版本为14.8及以上版本。
  • RDS for PostgreSQL 13版本,对应的小版本为13.11及以上版本。
  • RDS for PostgreSQL 12版本,对应的小版本为12.15及以上版本。
  • RDS for PostgreSQL 11版本,对应的小版本为11.20及以上版本。

功能限制

  • 内置用户(rdsAdmin、rdsMetric、rdsRepl、rdsBackup)的SQL语句不受限流规则影响。
  • 使用SQL限流功能需要安装rds_pg_sql_ccl插件,该插件是RDS for PostgreSQL自研的内核限流插件,详见通过界面安装和卸载插件

操作步骤

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
  5. 在左侧导航栏选择“智能DBA助手 > 历史诊断”。
  6. 选择“全量SQL > SQL限流”。
  7. 打开,开启SQL限流开关。

    SQL限流开关打开后,限流规则才能生效。

  8. 单击“新建SQL限流规则”,配置SQL限流规则参数,参数说明请参见表1

    请根据业务和资源使用的实际情况合理配置SQL限流规则,否则可能会影响业务。

    图1 新建SQL限流规则
    表1 SQL限流规则参数

    参数

    说明

    限流方式

    • 原始SQL语句

      通过SQL语句创建的限流规则无法限制绑定变量的SQL语句。

    • Query ID

      同一个数据库中,不能创建重复(QUERY ID相同)的限流规则;不同的数据库中,可以创建重复的限流规则。

    最大并发数

    输入最大并发数,满足同一规则的语句最大并发数,超过最大并发数会被拒绝执行。

    取值范围为0~50000,为0表示不限制最大并发数。

    最大等待时间

    被限流SQL的等待时间,取值范围为0~1000000000。

  9. 确认无误后,单击“确定”
  10. SQL限流规则创建后不会立刻生效,单击“启用”使规则生效。

后续操作

如果不需要此条SQL限流规则,在操作列可以停用或删除规则。

  • 单击“停用”,即可停用限流规则。
  • 单击“删除”,即可删除限流规则,删除启用状态下的限流规则,该规则不会继续生效。
图2 删除SQL限流