数据表的修复
日期:2002-01-01 注意:在修复表之前要靠被他们,注意备份,切记! 1.标准的表修复 a.试着用 --recover选项修复表,能加上 --quick选项试图只根据索引的内容进行修复,这样做不触及数据文件。 % myisamchk --recover --quick table_name or % isamchk --recover --quick table_name b.假如难题还存在,在试试上一步命令,但是要忽略 --quick选项,这样允许修改数据文件。 % myisamchk --recover table_name or % isamchk --recover table_name c.假如还不工作,试试 --safe-recover 修复办法。但这种办法比普通办法要慢,但能修复 --recover无法修复的难题。 % myisamchk --safe-recover table_name or % isamchk --safe-recover table_name 假如在myisamchk or isamchk 由于一个"can‘t create new temp file:file_name"的错误消息在任何一步停止,应该重复该命令并 加入 --force选项强迫清除临时文件。 2.假如标准修复失败这样做 a.定位到包含崩溃表的数据库目录中。 b.将该表的数据文件移到安全的地方。 c.调用mysql并通过执行下列语句重新创建新的空表,该语句使用表的描述文件 tbl_name.frm重新开始生成新的数据和索引文件。 mysql>delete from tbl_name; d.退出mysql,将原始的数据文件移回到数据目录中,替换刚建的新的空文件。 e.在世这样用标准修复办法。 为了修复表的描述文件,可先从备份文件中恢复,然后再用标准修复办法。 假如由于某些原因没有备份,假如知道create table 语句,仍然能恢复该文件: a.定位到包含崩溃表的数据库目录中。 b.将该表的数据文件移到安全的地方。假如想使用用索引的话,还需要把索引文件移走。 c.调用mysql 发布create table 语句重建表。 d.退出mysql,将原始的数据文件移回到数据目录中,替换刚才新建的数据文件。假如在第2不中移动了索引文件,则也要讲起移回到 数据库目录中。 e.在尝试标准表修复办法。 以上办法针对mysql有效,请大伙注意。 |
|