分布式关系型数据库DRDS与日志服务联合推出SQL审计与分析功能,不仅支持历史SQL记录的审计,而且提供对SQL执行状况、性能指标、安全问题的实时诊断分析能力。

您可以在 DRDS 控制台,开通SQL审计与分析功能,进行实时日志分析。同时,DRDS依托日志服务,提供开箱即用的报表中心,使您对数据库执行状况、性能、潜在安全问题了如指掌。

功能优势

  • 操作简单:轻松配置即可开启,实时进行SQL日志的审计与分析。
  • 性能无损:实时拉取DRDS节点SQL日志文件上传,对实例本身性能无影响。
  • 历史问题追溯:支持导入历史SQL日志,追溯问题。
  • 实时分析:依托日志服务,提供SQL实时分析、开箱即用的报表中心、并支持自定义报表和下钻分析,对数据库执行状况、性能、安全问题了如指掌。
  • 实时告警:支持基于特定指标,定制准实时的告警,确保关键业务异常时可及时响应。
  • 价格优势:存储费用比传统方案更低, 每GB日志存储费用低至0.58元/月,详情参考按量付费

限制说明

  • 使用SQL审计与分析功能,需要开通阿里云日志服务。
  • 当前支持的区域:华东1、华东2、华北1、华北2、华南1。其它地区陆续开放中。
  • 共享实例不支持SQL审计与分析功能。
  • SQL审计日志默认保存30天,您也可以根据需要修改日志保存时间。
  • 请勿随意删除或修改日志服务为您默认创建的Project、Logstore、索引和仪表盘设置,日志服务会不定期更新与升级SQL日志审计功能,专属日志库的索引与默认报表也会自动更新。
  • 子账号使用SQL审计与分析,需要为其授予日志服务相关权限,详细说明请参考为子账号授予DRDS SQL审计权限
  • SQL审计功能默认为关闭状态。开启该功能后,会产生额外费用,详细收费标准请参见按量付费。如果您需要关闭该功能,请在DRDS控制台关闭。关闭后不再写入数据,可以查看历史数据,这部分历史数据会产生存储和索引费用。您可以在日志服务控制台删除Logstore以删除历史数据,删除后日志服务不再对该部分数据计费。

应用场景

  • 排查问题SQL
    开启DRDS SQL审计与分析功能后,您可以对SQL日志进行快速检索,排查定位问题。例如,需要查询是否有人执行Drop操作,可以执行如下查询:
    sql_type: Drop
    如下图所示,查询结果中包括SQL的执行时间、用户、执行该SQL的客户端IP地址等。


  • 分析高代价SQL模板

    大多数应用中,SQL通常是基于若干模板动态生成的,只是参数不同。通过日志服务的实时分析能力,您可以获取当前数据库中的高代价SQL列表。

    例如执行以下查询:

    | SELECT sql_code as "SQL模板ID", round(total_time * 1.0 /sum(total_time) over() * 100, 2) as "总体耗时比例(%)" ,execute_times as "执行次数", round(avg_time) as "平均执行时间",round(avg_rows) as "平均影响行数", CASE WHEN length(sql) > 200 THEN concat(substr(sql, 1, 200), '......') ELSE trim(lpad(sql, 200, ' ')) end as "样例SQL" FROM (SELECT sql_code, count(1) as execute_times, sum(response_time) as total_time, avg(response_time) as avg_time, avg(affect_rows) as avg_rows, arbitrary(sql) as sql FROM log GROUP BY sql_code) ORDER BY "总体耗时比例(%)" desc limit 10 

    查询结果如下图所示。包括SQL模板的ID、该模板SQL占SQL的耗时比例、执行次数、平均执行时间、平均影响行数以及样例SQL。您可以基于该分析结果,找到应用中代价最高的SQL模板,对其进行优化。



  • 日志统计与报表
    为了便于分析问题,DRDS SQL审计分析结合日志服务,为您提供了开箱即用的报表,让您对数据库的执行状况、性能和潜在安全问题进行实时诊断分析,报表页面如下图所示。
    • 运营中心



    • 性能中心



    • 安全中心