修复数据库Error : Table ‘name’ is marked as crashed and last (automatic?) repair failed

由于机器断电导致数据库异常,mysqlchek修复操作报错:Error: Table ‘./db_name/table_name’ is marked as crashed and last (automatic?) repair failed

进行第二次修复操作:myisamchk -c -r /home/mysqldata/databasname/jieqi_article_chapter(正常情况后缀是.MYI,由于mysql版本bug,去掉.MYI才能正常执行)

 

知识拓展

Myisam损坏的情况:

1、 服务器突然断电导致数据文件损坏;强制关机,没有先关闭mysql 服务;mysqld 进程在写表时被杀掉。因为此时mysql可能正在刷新索引。

2、 磁盘损坏。

3、 服务器死机。

4、 mysql 本身的bug 。

MySQL中MyISAM表损坏的症状

1 、查询数据时报出错误:Incorrect key file for table: ‘…’. Try to repair it

2 、查询不能在表中找到行或返回不完全的数据。

3 、Error: Table ‘…’ is marked as crashed and should be repaired 。

4 、打开表失败: Can’t open file: ‘×××.MYI’ (errno: 145) 。

注意点

:只用于Myisam表,不支持分区表

在执行表修复的时候,最好对要修复的表进行备份

需要注意的是:必须确保没有其他的程序在用着想要修复的表。最好关闭数据库,或者锁定所有的表flush tables table_name,包括缓存中的表,也要刷新否则会出现warning: clients are using or haven’t closed the table properly

使用

命令格式: myisam [options] tbl_name

参数

–slient,-s 只输出错误,-ss更少的输出

–extend-check, -e 完全的检查表,如果表有很多的索引的话,那么将很慢,可以增加key_buffer_size变量

–fast,-F 检查那些,没有合理关闭的表

–force,-f 如果发现任何错误,它将会自动执行修复工作,不建议使用,可能会出现数据丢失

–medium-check,-m 比–extend-check 快点,一般可以修复大部分的错误。比较常用

–bakkup,-B 数据文件MYD将被备份为file_name-time.BAK

–quick,-q 只对索引文件进行修复,不对数据文件操作

–recover,-r 可以修复大部分的情况的错误,除了唯一键不唯一except unique keys that are not unique,即出现两此同样的数据。一般首先尝试这项来修复表。

–safe-recover,-o 一般–recover修复不了的问题可以使用这项在来修复,按顺序读取所有的表,但时间巨大

 

实际上,-r,-o就是遍历或者扫描整个表,中间建立临时文件存放抽取的信息,最后把源文件给删除,所以在使用-r,-o时,最好加上-B参数

 

没有指定参数myisam只是简单的检查表

在使用Myisam时,如果没有在数据库目录下,指定好路径。

检测索引文件:myisamchk /path/to/database_dir/*.MYI

推荐快速的检查表文件myisamchk –silent –fast /path/to/datadir/*/*.MYI

如果想检查并修复任何的表损坏的地方,可以使用

myisamchk –silent –force –fast –update-state

–key_buffer_size=64M –myisam_sort_buffer_size=64M \

–read_buffer_size=1M –write_buffer_size=1M \

/path/to/datadir/*/*.MYI

如果用Myisamchk来修复很大的表的时候,而此时你的内存空闲的很多,那么可以适当的增大Myisamchk在操作时可使用的内存,另外磁盘的剩余空间最好可达到数据文件的两倍。

原创.转载请注明出处:www.tuike8.com
推课吧(tuike8) » 修复数据库Error : Table ‘name’ is marked as crashed and last (automatic?) repair failed

发表评论

提供最优质的资源集合

立即查看 了解详情