RDS MySQL版实例的慢日志无数据
更新时间:
问题描述
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版实例
方法1
为了彻底解决mysql.slow_log损坏的问题,建议您将RDS的内核小版本升级到最新的内核小版本,详情请参见升级内核小版本,可以有效的避免mysql.slow_log损坏。
方法2
该解决方案强烈建议在业务低峰期执行,避免当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版
文档内容是否对您有帮助?