自动化 mysql 维护

自动化 mysql 维护

是否有执行 mysql 维护的脚本?

或者

我如何使用 cron tab 手动完成此操作?

良好的 mysql 维护应执行哪些步骤?

(MyISAM)

答案1

mysqlcheck在 crontab 中运行良好。定期查看日志。

文档中有一个重要的警告:

每个表都被锁定,因此在处理时其他会话无法访问它,但对于检查操作,该表仅使用 READ 锁锁定READ 锁

以下是我的使用方法:

mysqlcheck -u $DB_USER -p"$DB_PASS" --all-databases > /root/mysql_backups/check_errors-${DATESTAMP}.log

答案2

到目前为止,最好的开源和使用过的代码是这个用于简单备份的代码 自动mysql备份

它可以进行简单的完整备份并为您自动轮换它们。

您还可以考虑在 mysql 目录上使用 LVM 并动态进行备份,而无需锁定表。

MyISAM 表是表锁定,而不是行锁定,因此在 mysql 备份期间某些表是不可写的。

除非您的吞吐量非常高,否则只需使用我给您的链接即可:D

答案3

除非你使用 FULLTEXT 索引,否则你真的应该转换为 InnoDB。MyISAM 已经过时了,将要以最轻微的理由破坏您的数据,更不用说它很慢了。转换非常简单:

  1. 确保您正在运行 MySQL 5.1 或更新版本。
  2. ALTER TABLE (tablename) ENGINE=InnoDB每张桌子都发行。
  3. (如果运行您自己的 MySQLd)更改您的 my.cnf 以将空间分配给 innodb_buffer_pool;您可以交换专用于 key_buffer 的任何空间,因为 InnoDB 不使用它。

如果您坚持使用 MyISAM,简单的“mysqlcheck -A --optimize”或类似的命令应该可以完成您想要的操作。

相关内容