MySQL: 如何使用myisam-recover-options选项?myisamrecover

适用于:

MySQL 服务器-版本4.0及以上

本文信息适用于所有平台。

 

目标

学习MySQL的myisamrecoveroptions选项并如何将它用于启动服务器时崩溃的MyISAM表的自动修复。

myisam‐recover‐options 在MySQL 5.1及更早版本中叫做mysqlrecover。

 

修复

myisam‐recover‐options选项是用于创建启动MySQL时MyISAM 的自动恢复。myisam‐recover‐options选项能使用以下值:

  • DEFAULT: 不用备份,强制,或快速检查进行恢复。
  • BACKUP: 如果数据文件在恢复时被更改,将MYD 文件的备份保存为 tbl_name‐datetime.BAK。
  • FORCE: 即使会从.MYD 文件丢失多于一行仍运行恢复。
  • QUICK: 如果没有任何delete块就不检查行。

 

myisam‐recover‐options 也允许值的组合,例如果数据文件在恢复时被更改,即使创建备份时丢失了多于一行,FORCE,BACKUP 结合恢复的使用。

 

myisam‐recover‐options的QUICK和DEFAULT值是两个最安全的选项,因为它们不删除任何数据。这也使得它们对于自动恢复是很适合的值。DEFAULT和FORCE的差异是即使FORCE不能从之前完成的语句中找到所有行,它仍被允许继续恢复。因此,建议将FORCE与BACKUP结合,使得在对MyISAM数据文件作更改之前创建一个备份。

 

所以在myisam‐recover‐options 选项使用DEFAULT 是个好方法,但如果失败的话,如果错误经常出现且可以接受潜在丢失数据的风险,建议手动修复并仅使用myisamrecover=FORCE,BACKUP。

 

你应该在执行手动修复之前创建表的备份。

 

如果你需要自动修复表而不重启MySQL ,你需要使用调度服务启 myisamchk, CHECK TABLE,且/或REPAIR TABLE 来定期检查并修复表的错误。MySQL 5.1及以上你能使用EVENTs;在MySQL

5.0及以下,你需要使用操作系统提供的scheduler。

 

如果你选择使用myisamchk,你必须确保在运行myisamchk时没有其他程序在使用表。

参见:

MyISAM Startup Options

Setting Up a MyISAM Table Maintenance Schedule

How to Repair MyISAM Tables

What is a MySQL Event and How is it Created?

 

参考

NOTE:1023216.1 How can I speed up bulk loading or repairing of MyISAM tables?

NOTE:1023264.1 What can Cause Corrupted MyISAM Tables in MySQL Server?

NOTE:1023408.1 Error: 1034 Incorrect key file for table ‘%s’; try to repair it Or ERROR 126

(HY000): Incorrect key file for table ‘%s’; try to repair it From MySQL Server

NOTE:1023752.1 Error: 1195 Table ‘%s’ is marked as crashed and last (automatic?) repair failed.

NOTE:1023780.1 Error: 1035 Old key file for table ‘%s’; repair it!

NOTE:1024132.1 What is a MySQL Event and How is it Created?

Didn’t find what you are looking for?

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号