RDS MySQL版实例的慢日志明细和慢日志统计中无数据,无法查询慢日志,慢日志不正常输出,且看不到慢日志信息。
mysql.slow_log表损坏,
RDS MySQL版实例的慢日志记录在mysql.slow_log表中,后台会定期的获取慢日志记录并清理mysql.slow_log表,然后展示到RDS控制台
的慢日志明细页面。
RDS MySQL 5.5版实例
您可以先确认已开启慢日志功能,若已开启还是出现问题,请
提交工单
进行核实处理。
RDS MySQL 5.6版实例
为了彻底解决mysql.slow_log损坏的问题,建议您将RDS的内核小版本升级到最新的内核小版本,详情请参见
升级内核小版本
,可以有效的避免mysql.slow_log损坏。
说明
:RDS MySQL 5.6实例目前不支持通过
repair
命令修复mysql.slow_log表,如果您短期不考虑升级内核小版本,请
提交工单
进行处理。
RDS MySQL 5.7版实例和RDS MySQL 8.0版实例
为了彻底解决mysql.slow_log损坏的问题,建议您将RDS的内核小版本升级到最新的内核小版本,详情请参见
升级内核小版本
,可以有效的避免mysql.slow_log损坏。
该解决方案强烈建议在业务低峰期执行,避免当mysql.slow_log表很大时,使用repair命令修复造成性能波动。
使用RDS高权限账户,通过DMS或者命令行工具登录RDS数据库,执行如下SQL语句,对mysql.slow_log表进行查询操作。
select * from mysql.slow_log where sql_text like 'test%';
如果RDS返回结果如下所示,可以确认是mysql.slow_log损坏,请继续下一步操作。
Table 'slow_log' is marked as crashed and should be repaired
登录
RDS控制台
,单击
实例列表
。
选择对应的地域,然后单击目标实例ID。
找到并单击
参数设置
,在参数设置页面将slow_query_log参数设置为OFF,然后单击
提交参数
,即可关闭慢日志采集。
创建高权限账号,详情请参见
创建高权限账号
。
使用高权限账号,通过
DMS控制台
或者命令行工具登录RDS数据库,执行如下SQL语句,进行修复。
使用
repair
语句后,可以修复慢日志,新的慢日志可以正常记录,但是处于损坏过程中的慢日志无法找回。
使用
repair
语句操作的时间取决于损坏的mysql.slow_log表的大小。
repair table mysql.slow_log
修复完成后,在RDS控制台的
参数设置
页面中,将slow_query_log参数设置为ON,然后单击
提交参数
,即可打开慢日志采集。
云数据库RDS MySQL版