分布式关系型数据库PolarDB-X 1.0与日志服务联合推出SQL审计与分析功能,不仅支持历史SQL记录的审计,而且提供对SQL执行状况、性能指标、安全问题的实时诊断分析能力。
您可以在PolarDB-X 1.0控制台,开通SQL审计与分析功能,进行实时日志分析。同时,PolarDB-X 1.0依托日志服务,提供开箱即用的报表中心,使您对数据库执行状况、性能、潜在安全问题了如指掌。
功能优势
- 操作简单:轻松配置即可开启,实时进行SQL日志的审计与分析。
- 性能无损:实时拉取PolarDB-X 1.0节点SQL日志文件并上传至日志服务,对实例本身性能无影响。
- 历史问题追溯:支持导入历史SQL日志,追溯问题。
- 实时分析:依托日志服务,提供SQL实时分析、开箱即用的报表中心并支持自定义报表和下钻分析,对数据库执行状况、性能、安全问题了如指掌。
- 实时告警:支持基于特定指标,定制准实时的告警,确保关键业务异常时可及时响应。
- 价格优势:存储费用比传统方案更低, 每GB日志存储费用低至0.58元/月,详情参考计费方式。
限制与说明
- 使用SQL审计与分析功能,需要开通阿里云日志服务。
- 共享实例不支持SQL审计与分析功能。
- SQL审计日志默认保存45天,您也可以根据需要修改日志保存时间。
- 请勿随意删除或修改日志服务为您默认创建的Project、Logstore、索引和仪表盘设置,日志服务会不定期更新与升级SQL日志审计功能,专属日志库的索引与默认报表也会自动更新。
- 子账号使用SQL审计与分析,需要为其授予日志服务相关权限。
- SQL审计功能默认为关闭状态。开启该功能后,会产生额外费用,详细收费标准请参见计费方式。如果您需要关闭该功能,请在控制台关闭。关闭后不再写入数据,可以查看历史数据,这部分历史数据会产生存储和索引费用。您可以在日志服务控制台删除Logstore以删除历史数据,删除后日志服务不再对该部分数据计费。
- 单条SQL的最大显示长度为4096字符,超过部分会被截断。
问题SQL排查
开启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 1.0的SQL审计分析结合日志服务,为您提供了开箱即用的报表,让您对数据库的执行状况、性能和潜在安全问题进行实时诊断分析,报表页面如下所示。
- 运营中心
- 性能中心
- 安全中心