2010年4月14日

[mysql 15241] repair tableで修復出来ない状態

松永です。

FreeBSD 7.0 無印
mysql 5.1.35 をportsでinstall
を使ってます。

MyISAMのテーブルに対するmysqldumpが出来なく、困っています。


mysqldumpでdumpしようとした所、下記のようなエラーが発生しました。

$ mysqldump -u hogeuser -p -h hogehost hogehoge > hogehoge.backup.sql
mysqldump: Error 1194: Table 'hogehoge' is marked as crashed and should be repaired when dumping table `hogehoge` at row: 0

動作を見るために、mysqlでloginして該当テーブルに対して色々selectのquery(pkでの一件検索や、pkのmin, max, countを取ってみるなど)や、show create tableを投げましたが、問題無くsqlは結果を返してました。
その後、repair tableを行ないました。

mysql> repair table hogehoge;
+---------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+---------------+--------+----------+----------+
| hoge.hogehoge | repair | status | OK |
+---------------+--------+----------+----------+
1 row in set (3 min 19.39 sec)

ところが、再度mysqldumpを実行しても状況が変わりませんでした。

何度かdumpとrepairを行なっていた時に、一度だけ、show create tableがエラーを返し(エラーは失念)、repairの結果も下記のような
+---------------+--------+----------+-----------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------------+--------+----------+-----------------------------------------+
| hoge.hogehoge | repair | warning | Number of rows changed from 0 to 407997 |
| hoge.hogehoge | repair | status | OK |
+---------------+--------+----------+-----------------------------------------+
2 rows in set (3 min 3.99 sec)
となった事もあります。
メッセージ的にはこちらの方が、ある意味正しい気(エラーがあったのを修正しているので)もしますが。。。


なんにせよ、何度かmysqldumpとrepairを繰り替えしましたが、mysqldumpの結果は変わっていません。
なにかしら解決の糸口があれば、ご教示願います。


--
MATSUNAGA Ichiro
e-mail: vikke.bsd@xxxxx
/.j: http://slashdot.jp/~vikke/
last.fm: http://www.lastfm.jp/user/vikke_bsd/
twitter: http://twitter.com/vikke

Just remember - when you think all is lost, the future remains.
-- Robert H. Goddard

GPG fingerprint = DCEF C86E 2930 45D0 0941 E977 4DCE A95F 3914 4BED

投稿者 xml-rpc : 2010年4月14日 13:28
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95029
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。