使用myisamchK 命令修复数据

使用myisamchk 命令修复表

myisam使用程序可以用来获得有关你的数据库表的统计信息,检查,修复,优化他们

命令格式:

myisamchk  [option] tables [.frm]

常用的检查选项:

--information -i 打印所检察标的统计信息

--fast ,-F  只检查没有正确关闭的表

--force ,-f 如果myisam发现表内有任何错误,则自动修复维护类型与-r指定相同

--medium-check,-m比--extend-check更快速的进行检查,只能发现99%的错误、

快速检查

myisamchk  -im  /usr/local/mysql/back/t1

只检查没有正常关闭的表

myisamchk  -iFm  /usr/local/mysql/back/*

仅显示最重要的信息

myisamchk  -eis  /usr/local/mysql/back/t1

常用的修复选项:

--backup,-B 将MYD文件备份为file_name-time.BAK

--correct-checksum 纠正表的校验和信息。

--force,-f 出现问题就修复并更新状态信息,尽量不要使用

--quick,-q 不修改数据文件。快速进行修复,出现复制键时候,可以两次指定改选项以强制myisamchk修改原数据文件

--recover,-r 可以修复几乎所有的一切问题,除非唯一的键不唯一时候(对于myisam表,这是不肯能发生的情况)

--safe-recover,-o 使用一个老的恢复方法读取,按顺序读取所有行,并根据找到的行更新所有索引数

用myisamchk修复是应注意的:

myisamchk 默认使用的内存太小了,如果要修复大表的话,显然速度会很慢,我们可以加内存参数,来加快运行

myisamchk  --sort_buffer_size=16M --key_buffer_size=16M --read_buffer_size=1M --write_buffer_size=1M

恢复步骤 1:

首先,应该执行仔细检查数据库报错的错误代码。通过mysql终端或者执行myisamchk命令都可以查看错误代码

myisamchk -im --verbose  tablename

[[email protected] db1]# myisamchk -im --verbose t2

常见错误代码:

perro 126 127 132  134 135 136 141 144 145

对于error135(no more room in recoder file)和 error136 (no more romm in index file)来说可以简单的修复、

alter table tablename max_rows=xxx avg_row_length=yyyy;

恢复步骤2:

在使用myisamchk修复会优化时候,必须保证mysqld服务器没有使用该表,最好关闭mysql服务器。如果不关闭mysql,

在运行myisamchk之前应该执行flush tables tablename with read lock.如果服务器和myisam同时访问表,表可能会被破坏

mysql>flush table t2 with read lock;

myssql>unlock tables;

恢复步骤3:

最后使用myisamchk命令跟上-rq参数组合就可以修复指定表了,

如果修复失败,可以再尝试使用-Br参数组合

如果还不行,再试试使用-o参数

#myisam -rq  tablename

#myisam -Br  tablename

#myisam -o   tablename

-r -o 参数都会扫描整个表 然后抽取出来存储成一个临时文件,建议一般都跟着-B 参数

用myisamchk 恢复丢失的索引表

step1:把MYD文件移到安全的地方、

step2:使用。frm文件恢复表结构

step3:mysql  db_name

step4:mysql> set autocommit=1;

step5:mysql>truncate table tbl_name;

step6:mysql>quit

step7:将老的.MYD拷贝回来

step8:myisamchk  -rq tablename

以上的2-7步骤可以替换为1-5

1, rm -rf t2.MYI(已损坏的索引文件

2,touch t2.MYI建一个空的MYI文件

3,mv  /root/t2.MYD   /usr/local/mysql/data/db1

4,chow -R mysql.mysql MYI

5, repair table tablename use_frm)

myisamchk优化表

myisamchk  -r  tablename 执行过程中可以做“碎片整理”

myisam -S tablename可以对整个表的索引进行排序,优化查找键值的速度

myisam 也可以对指定的索引进行排序

mysql>show index from tablename;   查看对应表的索引

myisam -R 1 tablename 对指定 的索引进行排序   1 表示编号

时间: 2024-08-28 06:05:17

使用myisamchK 命令修复数据的相关文章

myisamchk命令修复表操作

myisamchk命令使用总结 myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查.修复.优化他们 1.常用于myisamchk的检查选项--information, -i打印所检查表的统计信息. --fast,-F只检查没有正确关闭的表. --force, -f如果myisamchk发现表内有任何错误,则自动进行修复.维护类型与-r选项指定的相同. --medium-check, -m比--extend-check更快速地进行检查.只能发现99.99%的错误,在大多数情况下

用Myisamchk让MySQL数据表更健康

用Myisamchk让MySQL数据表更健康 2011-03-15 09:15 水太深 ITPUB 字号:T | T 为了让MySQL数据库中的数据表“更健康”,就需要对其进行定期体检.在这里笔者推荐使用Myisamchk工具来对数据表进行不定期的检查.同时笔者给出了一些相关的注意事项以及使用技巧. AD:51CTO 网+首届APP创新评选大赛火热启动——超百万资源等你拿! 在MySQL数据库中,数据表数以百计,数据库管理员不可能有这么多的时间和精力去依次检查表的有效性,所以他们急需要一种工具,

myisamchk命令使用总结

原文自:http://blog.csdn.net/wyzxg/article/details/7303486 论述详细,情不自禁 复制粘贴,以防删除 myisamchk命令使用总结 myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查.修复.优化他们 1.常用于myisamchk的检查选项--information, -i打印所检查表的统计信息. --fast,-F只检查没有正确关闭的表. --force, -f如果myisamchk发现表内有任何错误,则自动进行修复.维护类型

如何解决Greenplum中无法通过标准命令修复的元数据错误

Greenplum的可靠性还是没法和传统商业数据库相比,它跑着跑着就会把自己的元数据给跑乱,有些是可以通过命令修复的,有些则只能直接去增删改system catalog.本文结合一个具体错误,介绍如何操作system catalog解决元数据错误. 现象 使用gpcheckcat -p 5432 databasename检查数据库时,将报出类似如下的输出: Relation oid: 12345678 Relation name: None.None Name of test which fou

linux命令之数据盘格式化挂载

1,查看数据盘 在没有分区和格式化数据盘之前,使用”df -h “命令是无法看到数据盘的,可以通过 fdisk -l 查看机器情况(找出所有硬盘个数及设备名称)  提示:若没有发现/dev/xvdb 表示服务器没有数据盘,无需进行挂载操作 1 1 2,对数据盘进行分区 执行 fdisk /dev/xvdb 命令对数据盘进行分区 根据提示,一次输入 “n”, “p”, “1”,两次回车, “wq”,分区开始  3,查看新分区 执行 fdisk -l 命令 ,可以看到新分区 xvdb1创建完成  4

用ipconfig命令修复TCP/IP的配置信息

今天遇到一个好奇葩的问题  好吧是昨天遇到的一直没找到解决办法(`へ′) tomcat正常启动,但是通过IP不能访问web 用IP地址就是不行  (:′⌒`)  打不开 localhost就可以   o( ̄ヘ ̄o#) 于是就去求助    三c⌒っ?Д?)っ 求助各种人脉 (@ ̄ー ̄@) 一直找不到解决方法o( ̄ヘ ̄o#) .(?>?<?)?  就这样    他们都能访问到(?????)? ??     我就是请求失败o(︶︿︶)o 于是找上了老师帮忙解决(゜▽^*)) 开始说用  ping 命

pt-table-checksum校验与pt-table-sync修复数据

1:下载工具包 登录网站下载相应的工具包 https://www.percona.com/downloads/percona-toolkit/LATEST/ 2:安装 (1)yum安装: sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm yum list | grep percona-toolkit 结果集显示以下证明安装成

pt-table-checksum校验与pt-table-sync修复数据【转】

1:下载工具包 登录网站下载相应的工具包 https://www.percona.com/downloads/percona-toolkit/LATEST/ 2:安装 (1)yum安装: sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm yum list | grep percona-toolkit 结果集显示以下证明安装成

mysql命令修复数据库表开心乐园源码

REPAIR TABLE `table_name` 修复表  (只对oa开心乐园源码搭建q3191355031有效)OPTIMIZE TABLE `table_name` 优化表 REPAIR TABLE 用于修复被破坏的表.OPTIMIZE TABLE 用于回收闲置的数据库空间,当表上的数据行被删除时,所占据的磁盘空间并没有立即被回收,使用了OPTIMIZE TABLE命令后这些空间将被回收,并且对磁盘上的数据行进行重排(注意:是磁盘上,而非数据库). 多数时间并不需要运行OPTIMIZE T