5月 21
【その1:myisamchk】
mysqldを停止しておく必要がある。
(停止せずに修復を行うと場合によってはテーブルが壊れることがあるらしい)
■チェックするだけなら
$ myisamchk テーブルパス
データベースディレクトリに移動している場合にはテーブル名だけでもいい。
■全テーブルを修復(マニュアルにあった推奨)
$ myisamchk –silent –force –fast –update-state -O key_buffer=64M \
-O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M \
データベースディレクトリ/*/*.MYI
$ isamchk –silent –force -O key_buffer=64M -O sort_buffer=64M \
-O read_buffer=1M -O write_buffer=1M データベースディレクトリ/*/*.ISM
-O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M \
データベースディレクトリ/*/*.MYI
$ isamchk –silent –force -O key_buffer=64M -O sort_buffer=64M \
-O read_buffer=1M -O write_buffer=1M データベースディレクトリ/*/*.ISM
key_bufferとかの値は適宜変更
【その2:mysqlcheck】
mysqldは停止しない。
■全テーブルを修復
$ mysqlcheck -u ユーザー名 -pパスワード -a -o -A
- -A , –all-databases 全てのデータベース
- -a, –analyze 分析する
- -h, –host ホストに接続する
- -c, –check テーブルのエラーをチェックする
- -f, –force SQLエラーが発生しても続行する
- -o, –optimize テーブルを最適化する
- -s, –silent エラーメッセージだけを出力する
- …
myisamchkとの違いは、myisamchkが、サーバが実行していないときに使用するのに対し、mysqlcheckはmysqldサーバが実行しているときに使用します。テーブルのチェックまたは修復のたびにサーバを停止する必要がなくなりました。
っていうことなので、mysqlcheckを使えばOKなのかな?効果に違いはあるんだろうか?
Popularity: 7% [?]




