myisamchk (MYISAM ONLY) テーブルにアクセスが無い事を確認
http://dev.mysql.com/doc/refman/5.1/ja/myisamchk.html
myisamchk ユーティリティはユーザのデータベース テーブルの情報を収集し、
チェック、修復、もしくは最適化します。myisamchk は MyISAM
テーブルとともに作動します(データやインデックスを記憶するための
.MYD や .MYI テーブル)。

━アクセスが無い状態である必要あり━
※サーバーを停止しておく
※テーブルをLockしておく

*で全てのMYIテーブルをチェックする事が出来ます。
[root@colinux mysql]# myisamchk *.MYI
———

Checking MyISAM file: user_info.MYI
Data records: 0 Deleted blocks: 0
– check file-size
– check record delete-chain
– check key delete-chain
– check index reference
– check data record references index: 1
– check data record references index: 2
– check record links

———

Checking MyISAM file: user.MYI
Data records: 5 Deleted blocks: 0
– check file-size
– check record delete-chain
– check key delete-chain
– check index reference
– check data record references index: 1
– check record links

全てのMyISAMテーブルをチェックするお勧めの方法は以下のとおりです。

[root@colinux mysql]# myisamchk --silent --fast /usr/local/mysql/data/mysql/*.MYI
[root@colinux mysql]#

全ての MyISAM テーブルをチェックし、破壊されているものを修復したい場合、以下のコマンドを使用してください。

shell> myisamchk --silent --force --fast --update-state \
--key_buffer_size=64M --sort_buffer_size=64M \
--read_buffer_size=1M --write_buffer_size=1M \
/path/to/datadir/*/*.MYI

(例)メモリー量は調整してください。

[root@colinux mysql]# myisamchk --silent --force --fast --update-state --key_buf
fer_size=16M --sort_buffer_size=16M --read_buffer_size=16M --write_buffer_size=16M *.MYI

[root@colinux mysql]#

myisamchk

[root@colinux TEST]# myisamchk --recover *.MYI
– recovering (with keycache) MyISAM-table ‘MYSQLIMP.MYI’
Data records: 5
———
– recovering (with sort) MyISAM-table ‘Y2008.MYI’
Data records: 3
– Fixing index 1
– Fixing index 2
———
– recovering (with sort) MyISAM-table ‘Y2009.MYI’
Data records: 1
– Fixing index 1
– Fixing index 2

[root@colinux TEST]# myisamchk --recover MYSQLIMP
- recovering (with keycache) MyISAM-table 'MYSQLIMP'
Data records: 5

[root@colinux TEST]#

※ 起動時にcheckする場合は、mysqld --myisam-recovert=QUICK

※ Optionファイルに、myisam-recoverオプションを設定しても可能

Comments are closed.

Post Navigation