ITEEDU

5.9.5.3. myisamchk的修复选项

myisamchk支持下面的表修复操作的选项:

·         --backup, -B

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

·         --character-sets-dir=path

字符集安装目录。参见5.10.1节,“数据和排序用字符集”

·         --correct-checksum

纠正表的校验和信息。

·         --data-file-length=len, -D len

数据文件的最大长度(当重建数据文件且为“满”时)。

·         --extend-check,-e

进行修复,试图从数据文件恢复每一行。一般情况会发现大量的垃圾行。不要使用该选项,除非你不顾后果。

·         --force, -f

覆盖旧的中间文件(文件名类似tbl_name.TMD),而不是中断。

·         --keys-used=val, -k val

对于myisamchk,该选项值为位值,说明要更新的索引。选项值的每一个二进制位对应表的一个索引,其中第一个索引对应位0。选项值0禁用对所有索引的更新,可以保证快速插入。通过myisamchk -r可以重新激活被禁用的索引。

·         --no-symlinks, -l

不跟随符号连接。通常myisamchk修复一个符号连接所指的表。在MySQL 4.0中该选项不存在,因为从4.0开始的版本在修复过程中不移除符号链接。

·         --parallel-recover, -p

与-r和-n的用法相同,但使用不同的线程并行创建所有键。这是alpha代码。自己承担风险!

·         --quick,-q

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

·         --recover, -r

可以修复几乎所有一切问题,除非唯一的键不唯一时(对于MyISAM表,这是非常不可能的情况)。如果你想要恢复表,这是首先要尝试的选项。如果myisamchk报告表不能用-r恢复,则只能尝试-o。在不太可能的情况下-r失败,数据文件保持完好)。

如果你有大量内存,你应增加sort_buffer_size的值。

·         --safe-recover, -o

使用一个老的恢复方法读取,按顺序读取所有行,并根据找到的行更新所有索引树。这比-r慢些,但是能处理-r不能处理的情况。该恢复方法使用的硬盘空间比-r少。一般情况,你应首先用-r维修,如果-r失败则用-o。

如果你有大量内存,你应增加sort_buffer_size的值。

·         (OBSOLETE) --set-character-set=name

在MySQL 5.1中不使用。参见--set-collation。

·         --set-collation=name

更改用来排序表索引的校对规则。校对规则名的第一部分包含字符集名。

·         --sort-recover, -n

强制myisamchk通过排序来解析键值,即使临时文件将可能很大。

·         --tmpdir=path, -t path

用于保存临时文件的目录的路径。如果未设置,myisamchk使用TMPDIR环境变量的值。tmpdir可以设置为一系列目录路径,用于成功地以round-robin模式创建临时文件。在Unix中,目录名之间的间隔字符为冒号(‘:’),在Windows、NetWare和OS/2中为分号 (‘;’)。

·         --unpack,-u

将用myisampack打包的表解包。