当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机四级辅导:用Myisamchk进行崩溃恢复MySQL
发布时间:2010/3/15 14:24:13 来源:城市学习网 编辑:MOON
  由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏: mysqld进程在一个写入当中被杀死;计算机的意外关闭文件 “tbl_name.MYD” 数据文件 “tbl_name.MYI” 索引文件
  这3个文件的每一个文件类型可能遭受不同形式的损坏,但是问题最常发生在数据文件和索引文件。
  myisamchk通过一行一行地创建一个“.MYD”。
  从表处理器的得到错误###。如果它拒绝你修改文件,他们也必须是可被你写入的。
  阶段1:检查你的表
  运行
  myisamchk .MYI或。使用-s
  回到阶段2。现在myisamchk -r -q应该工作了。(这不应该是一个无限循环)。
  阶段4:非常困难的修复
  只有描述文件也破坏了,你才应该到达这个阶段。这应该从未发生过,因为在表被创建以后,描述文件就不再改变了。
  从一个备份恢复描述文件并且回到阶段3。你也可以恢复索引文件并且回到阶段2。对后者,你应该用myisamchk -r启动。
  如果你没有一个备份但是确切地知道表是怎样被创建的,在另一个数据库中创建表的一个拷贝。删除新的数据文件,然后从其他数据库将描述和索引文件移到破坏的数据库中。这给了你新的描述和索引文件,但是让数据文件独自留下来了。回到阶段2并且尝试重建索引文件。
  三、表优化
  为了组合成碎片的记录并且消除由于删除或更新记录而浪费的空间, 以恢复模式运行myisamchk:
  shell myisamchk -r tbl_name你可以用SQL的OPTIMIZE TABLE语句使用的相同方式来优化一张表,OPTIMIZE TABLE比较容易,但是myisamchk更快。也没有在一个实用程序和服务器之间不必要的交互可能性,因为当你使用OPTIMIZE TABLE时,服务器做所有的工作。
  myisamchk也有你可用来改进一个表的性能的很多其他选项:
  -S, --sort-index   -R index_num, --sort-records=index_num   -a, --analyze  对于选项完整的描述见myisamchk调用语法。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved