14.22 InnoDB 故障排除
以下一般准则适用于解决InnoDB
问题:
-
当操作失败或怀疑有错误时,请查看 MySQL 服务器错误日志(请参见第 5.4.2 节“错误日志”)。 第 B.3.1 节“服务器错误消息参考”提供了您可能遇到的一些常见的
InnoDB
特定错误的疑难解答信息。 -
如果故障与deadlock有关,请在启用innodb_print_all_deadlocks选项的情况下运行,以便将有关每个死锁的详细信息打印到 MySQL 服务器错误日志中。有关死锁的信息,请参见第 14.7.5 节“ InnoDB 中的死锁”。
-
与
InnoDB
数据字典有关的问题包括失败的CREATE TABLE语句(孤立 table 文件),无法打开InnoDB
文件以及系统找不到指定的路径错误。有关这些类型的问题和错误的信息,请参见第 14.22.3 节“对 InnoDB 数据字典操作进行故障排除”。 -
故障排除时,通常最好从命令提示符下运行 MySQL 服务器,而不是通过mysqld_safe或作为 Windows 服务运行。然后,您可以查看mysqld打印到控制台的内容,因此可以更好地了解正在发生的情况。在 Windows 上,使用--console选项启动mysqld以将输出定向到控制台窗口。
-
启用
InnoDB
监视器以获取有关问题的信息(请参阅第 14.18 节“ InnoDB 监视器”)。如果问题与性能有关,或者服务器似乎已挂起,则应启用标准 Monitor 以打印有关InnoDB
内部状态的信息。如果问题出在锁上,请启用“锁监控器”。如果问题出在 table 创建,table 空间或数据字典操作上,请参考InnoDB 信息架构系统 table以检查InnoDB
内部数据字典的内容。
InnoDB
在以下情况下暂时启用标准InnoDB
监视器输出:
-
长时间的 signal 量
-
InnoDB
在缓冲池中找不到可用的块 -
超过 67%的缓冲池被锁堆或自适应哈希索引占用
-
-
如果您怀疑 table 已损坏,请对该 table 运行CHECK TABLE。