MySQL 5.1 リファレンスマニュアル :: 4.9.4 テーブル保守とクラッシュ リカバリ
とある開発環境(xenのdomainUです)で開発してて、思わずDisk FULL!
ふと気がつくとapacheのログにエラーが大量に…。
[error] Error executing class callback in teardown stage: DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 83.\n\t(in cleanup) DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 83.\n
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
:
:
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
DBD::mysql::db do failed: Table ‘./sample/table’ is marked as crashed and should be repaired at /usr/share/perl5/CGI/Session/MySQL.pm line 40 during global destruction.
てことで、MySQLのデータベースが壊れたみたいです。
MyISAM形式のデータベースのリペアを行いました。
http://dev.mysql.com/doc/refman/5.0/en/table-maintenance.html (英語です)
http://dev.mysql.com/doc/refman/5.1/ja/table-maintenance.html(バージョン違うけど日本語)
http://dev.mysql.com/doc/refman/4.1/ja/table-maintenance.html (バージョン古いけど日本語)
MyISAM形式のデータベースのリペアは myisamchk コマンドで行います。
直前にMySQLがクラッシュして他のホストにてフェイルオーバーした場合などは、テーブルが破損する恐れがあります。ファイルをチェックするには –fast オプションとファイル名。
$ myisamchk –fast /var/lib/mysql/sample/table.MYIチェックでエラーになったファイルをリペアするには「–recover」を使います。
$ myisamchk –recover /var/lib/mysql/sample/table.MYIリペアに失敗した場合は「–safe-recover」を試します。
$ myisamchk –safe-recover /var/lib/mysql/sample/table.MYI
とりあえず、–recoverで修復されたようです。ほっ。
つぶやく![[ま]技術雑記](http://blog.kaburk.com/wp-content/uploads/2011/03/logo-300x90.png)


5 comments
ブログのデータクラッシュで焦る・・・ | 日々これ修行 says:
3月 16, 2009
[...] [MySQL] MySQLのデータベースが壊れたみたいです [...]
kamipo says:
10月 15, 2009
[MySQL] MySQLのデータベースが壊れたみたいです – [ま]技術雑記 – http://blog.kaburk.com/os…
Tatsuya Sasaki says:
10月 21, 2009
[MySQL] MySQLのデータベースが壊れたみたいです – [ま]技術雑記 – http://blog.kaburk.com/os…
tateyuko says:
1月 4, 2010
[MySQL] MySQLのデータベースが壊れたみたいです – [ま]技術雑記 – http://blog.kaburk.com/os…
sho7650 says:
4月 30, 2011
なぜか DB がいかれてたので、これで直りました RT [MySQL] MySQLのデータベースが壊れたみたいです | [ま]技術雑記 – http://goo.gl/pvfeV