功能优势
- 操作简单:轻松配置即可开启,实时进行SQL日志的审计与分析。
- 性能无损:实时拉取PolarDB-X节点SQL日志文件并上传至日志服务,对实例本身性能无影响。
- 历史问题追溯:支持导入历史SQL日志,追溯问题。
- 实时分析:依托日志服务,提供SQL实时分析、开箱即用的报表中心并支持自定义报表和下钻分析,对数据库执行状况、性能、安全问题了如指掌。
- 实时告警:支持基于特定指标,定制准实时的告警,确保关键业务异常时可及时响应。
- 价格优势:存储费用比传统方案更低, 每GB日志存储费用低至0.58元/月,详情请参见 计费方式 。
限制与说明
- 使用SQL审计与分析功能,需要开通阿里云日志服务。
- 当前支持的区域:华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华南1(深圳)。其它地区陆续开放中。
- 共享实例不支持SQL审计与分析功能。
- SQL审计日志默认保存30天,您也可以根据需要修改日志保存时间。
- 请勿随意删除或修改日志服务为您默认创建的Project、Logstore、索引和仪表盘设置,日志服务会不定期更新与升级SQL日志审计功能,专属日志库的索引与默认报表也会自动更新。
- 子账号使用SQL审计与分析,需要为其授予日志服务相关权限,详情请参见 为子账号授予SQL审计权限
- SQL审计功能默认为关闭状态。开启该功能后,会产生额外费用,详细收费标准请参见 。如果您需要关闭该功能,请在PolarDB-X控制台关闭。关闭后不再写入数据,可以查看历史数据,这部分历史数据会产生存储和索引费用。您可以在日志服务控制台删除Logstore以删除历史数据,删除后日志服务不再对该部分数据计费。
- 单条SQL最大支持长度为5M。
应用场景
问题SQL排查
开启PolarDB-X 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模板,对其进行优化。
日志报表统计
为了便于分析问题,PolarDB-X SQL审计分析结合日志服务,为您提供了开箱即用的报表,让您对数据库的执行状况、性能和潜在安全问题进行实时诊断分析,报表页面如下图所示:
- 运营中心
- 性能中心
- 安全中心