MYSQLデータベースが壊れた!!

 日記を表示しようとしたり、書き込んだりしようとすると、エラーが出るようになってしまった。

 表示がおかしいとか、そういうレベルではなく、エラーが出るのみで、まったく日記が表示できない。ひいい!! 大変だ!! というわけで、週末でMYSQLと格闘しました。こう書くとたいしたことなく復活したように思われるかもしれないが、もうどこがどうおかしいのか、日記自体元通りになるのか、今まで2年以上書いてきた日記がこのまま消えてしまうのではないか、と、もう脂汗たらたら状態で、久しぶりに徹夜をしまった。

 救いはINNODBをシステムとは別のドライブに保存していたことだ。データが生きているのだから、必ず復旧できる、と信じてあれこれ試してみた。いろいろ試行錯誤してみたところ、今回の症状は、データベースにMTやMysqlAdminがアクセスすると、MYSQLのサービスが止まってしまい、エラーが返されているということがわかった。

 そこで、googleで検索してみたところ、どうやら同じような症状に襲われているケースに引っかかった。今回参考になったサイトは次のとおり。

http://www.bulanco.net/blog/2009/02/mt-session.html

http://www.syncworld.net/blog/nob/archives/mysql.html

 いずれもMTのユーザーのサイトで、データベースのテーブルが破損したときの回復方法が書いてあった。私のケースは上のサイトのケースと同じケースで、「mtsession」というファイルが破損していた。残念ながら、下のサイトで紹介されている「repair」文では、今回は修復できなかった。repairコマンドをmtsessionに実行すると、MYSQLのサービスが停止してしまうのだ。そこで、今回は上のサイトでも方法が紹介されているが、新しいブログをひとつ作成し、mtsessionをエクスポートし、MysqlAdminでインポートした。(直接上書きではだめ。うまくいかなくて、絶望しそうになった。)

 祈るような気持ちでMTにログイン。おお~!!! 治った!!! もうこの瞬間の喜びはあらわしようがなかったよ。(うるうる) 本当に今回ほどバックアップの重要性を思い知ったことはなかったね。しらべたところによると、どうやらMTはログイン、書き込み、読み出しすべてのアクションで、この「mtsession」というファイルにアクセスを行うシステムらしく、このファイルはちょっとしたことで破損する恐れが高いものらしい。システムのバックアップをいくらしていても、データベースが壊れたままバックアップしていては意味がなく、MYSQLのデータは2重、3重にバックアップする必要がありそうだ。緊急に方法を検討しなければなるまい。それにしても、今回は本当に疲れた。もう目がしょぼしょぼだ。また目が悪くなってしまうじゃないか。さっさと今夜は寝なければ。おやすみなさい・・・。