磁盘已满后如何进行 MySQL 维护

磁盘已满后如何进行 MySQL 维护

我在 ubuntu 服务器虚拟机上运行了一个相当大的 mysql 数据库 (InnoDB)。最近由于我的失误,硬盘已满(在物理机上),服务器卡住了,用户无法工作。我不得不从物理机上删除一些文件,然后硬重启装有 MySQL 数据库的 ubuntu 服务器。

  1. 发生这样的崩溃后,我需要在 MySQL 上执行什么特殊操作吗?
  2. 我需要在 ubuntu 服务器上执行什么特殊操作吗?(例如 chkdsk 或碎片整理)
  3. 是否需要定期在 MySQL 数据库上运行任何“最佳实践”命令?

答案1

  1. 否,但请检查日志中是否有警告和错误。在某些情况下,您可能需要发出修复。
  2. 不,如果您需要检查文件系统,它会提示您进行检查,或者自动运行检查。Linux 的等效项是 fsck(文件系统检查)。其工作原理完全取决于您使用的文件系统。
  3. OPTIMIZE 表可以清理未使用的空间(即如果大量数据被更改或删除)。根据您的架构和数据使用情况,它可能有用也可能没用。再次提醒,运行此命令时要小心,MySQL 会在运行期间锁定表。

虽然你问的这些问题很好,但真正的根本原因是文件系统已满。这就是你需要解决的问题:

  1. 如果这台机器的主要功能是数据库服务器,那么 MySQL 数据库应该位于它自己的分区上。如果它只是次要功能,至少要确保 /var 在其自己的分区上处于关闭状态(或 MySQL 数据目录所在的基目录)。您不应该能够通过将文件添加到 /home 或 / 来使 MySQL 崩溃

  2. 当文件系统接近满时,您应该收到警报。Nagios 或 hyperic 可以为您执行此操作,并提供大量其他健全性检查和警告,以提醒您注意潜在危险。

答案2

对于文件系统,如果您使用日志文件系统,它应该自动处理。

对于 Mysql,您可以使用优化和修复表 mysql 命令,但您必须小心,因为这些命令可能需要很长时间并且需要表锁定。您可以查看 mysql 文档以获取更多信息。

相关内容