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版
  •