更新时间:2024-06-28 GMT+08:00

SQL自动查杀

使用场景

  • Kill掉所有执行时间已经超过n秒的请求。
  • Kill掉特定客户端IP的请求。
  • Kill掉所有全表扫描的请求。

使用须知

  • 实例节点的CPU规格数量在4U及其以上。
  • 支持3.4 、4.0、4.2和4.4版本的副本集实例和集群实例。
  • 单个实例最多创建10条规则。
  • 32 shard以上规模超大集群,创建并启用“节点类型”为shard 和dds mongos_shard的查杀规则会失败,建议创建 “节点类型”为dds mongos的查杀规则。
  • shard数量较多(超过10个shard)的集群,建议启用和禁用规则时一次选中并操作一个规则。
  • 目前此功能仅支持白名单用户使用,需要提交工单申请才能使用。您可以在管理控制台右上角,选择“工单 > 新建工单”,完成工单提交。

创建查杀规则

  1. 登录管理控制台
  2. 单击管理控制台左上方的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 文档数据库服务 DDS,进入文档数据库服务信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例名称。
  5. 在左侧导航树,单击“SQL自动查杀”

    图1 SQL自动查杀

  6. 单击“创建规则”

    图2 创建规则

  7. “创建规则”页面,填写参数,参数说明请参见表1

    图3 创建规则参数
    表1 参数说明

    参数名称

    说明

    操作类型

    创建单条规则时可以指定一项或多项操作类型。

    操作类型如下:
    • query:查询操作
    • update:更新操作
    • insert:插入操作
    • remove:删除操作
    • command:命令操作
    • getmore:获取更多数据操作

    表命名空间

    • 为空:表示对实例中的所有库表的操作都查杀,例如””。
    • 填数据库名称:表示对该数据库下的所有集合的操作都查杀,例如db1。
    • 填数据库名称.集合名称:表示只对该集合的操作查杀,例如db1.coll1。

    客户端IP

    如果客户使用的是华为云ECS,配置ECS的内网IP。

    说明:
    • 此参数对于3.4版本的集群实例不生效。

    执行计划

    • 默认为空,表示查杀所有的执行计划。
    • 选择COLLSCAN表示查杀全表扫描。

    最大并发数

    • 0表示该项不生效。
    • 例如该项配置为100时,表示当前满足条件的操作只允许有100个在执行。
      说明:

      例如当前满足条件的currentOp有110个,为了尽可能的让操作维持在100个,就会随机停止10个。

    • 和最大运行时长不能同时为0。

    最大运行时长

    • 0表示该项不生效。
    • 例如该项配置为5时,表示查杀执行超过5s的currentOp,配置超过2秒才有效。
    • 和最大并发数不能同时为0。

    节点类型

    • dds mongos表示规则只在dds mongos上生效。
    • shard表示规则只在shard上生效。
    • dds mongos_shard表示规则会同时在dds mongos和shard上生效。
    • replica表示规则在副本集上生效。

  8. 单击“确定”。

启用查杀规则

  1. 登录管理控制台
  2. 单击管理控制台左上方的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 文档数据库服务 DDS,进入文档数据库服务信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例名称。
  5. 在左侧导航树,单击“SQL自动查杀”

    图4 SQL自动查杀

  6. 选中目标规则,在“操作”列单击“启用”。

    图5 启用规则

  7. 单击“是”。

    图6 确定启用规则

  8. 执行完成后,可在界面查看规则的状态。

    图7 规则启用状态

禁用查杀规则

  1. 登录管理控制台
  2. 单击管理控制台左上方的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 文档数据库服务 DDS,进入文档数据库服务信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例名称。
  5. 在左侧导航树,单击“SQL自动查杀”

    图8 SQL自动查杀

  6. 选中目标规则,在“操作”列单击“禁用”。

    图9 禁用规则

  7. 单击“是”。

    图10 确定禁用规则

  8. 执行完成后,可在界面查看规则的状态。

    图11 规则禁用状态

删除查杀规则

已经启动的规则不能被删除。如果您需要删除规则,请先执行禁用查杀规则

  1. 登录管理控制台
  2. 单击管理控制台左上方的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 文档数据库服务 DDS,进入文档数据库服务信息页面。
  4. “实例管理”页面,选择指定的实例,单击实例名称。
  5. 在左侧导航树,单击“SQL自动查杀”

    图12 SQL自动查杀

  6. 选中目标规则,在“操作”列单击“删除”。

    图13 删除规则

  7. 单击“是”。

    图14 确定删除规则