2歳児、データベース障害を修復

ここの日記のデータはMySQLというデータベースに格納している。
非常に高速なことで有名なこのデータベースエンジンだが、うちのサイトが遅いのは自宅サーバが遅すぎるからであり、MySQLのせいではない(^^;;;
ところで、このデータを毎朝自動バックアップしているのだが、それが昨日からコケていた。
メールで届いたエラーメッセージはこんな感じだ。

mysqldump: Can’t get CREATE TABLE for table ‘mt_template’ (Lost connection to MySQL server during query)

昨日はマラソンの大会があったので、朝からそんなに時間も割けず、今日になってから本格的にトラブルシュートを開始した。


さっそくログファイルである /var/mysql/`hostname`.err を見ると、どうもこのエラーが起きたときにデータベースが停止し、safe_mysqldによって再起動されているようだ。
実際に手でバックアップスクリプトを流してみると、再現する。
同じエラーが起きて、データベースが落ちて、再起動される。
色々いじっているうちに、ある特定のテーブルについて、show create tableを発行するとデータベースが落ちることを確認した。
mt_templateというMovableTypeで使っているテーブル。
このテーブルには苦い思い出があって、以前BerkleyDBで使用していたときに、このファイルがよく壊れたのだ。
今はMySQLを使っているし、関係ないと思いつつも、イヤな気持ちは変わらない。
もしかして、このテーブルだけ再作成したほうがスッキリするかな。
データはselectできるし、おかしいのはshow create tableだけ。
以前のバックアップもあるし、最近少し変更しているけど、差分はトランザクションログを再生してもいいし、やり直してもいいし・・・
とかって考えてたら、突然目の前のsshターミナルの接続が切れた。
???
再接続しようとしても、自宅サーバが応答しない。
sshだけじゃない、WEBサーバも応答しない。
サーバ全体が落ちた??
会社の無線LANが切れているわけじゃない。
妻のメッセンジャーも上がっているから、自宅のネットワークが切れたわけでもない。
妻にメッセンジャーで問いかけてみる。
俺「もしかして、サーバ落ちてない?」
妻「ごめん。あるとがリブートしちゃった><」
・・・苦笑
しかも、リブートしたら現象は再現しなくなっていた。
よくよくログを見てみたら、out of memoryとかも出ていた。
ちょっとメモリの割り当てが足りなかったのかもしれない。
なんせ非力なサーバだから(涙

カテゴリー: コンピュータ パーマリンク

2歳児、データベース障害を修復 への1件のコメント

  1. お気楽極楽スクリプト のコメント:

    [MT3.2]BerkleyDB→MySQLに移行

    どうやらBerkleyDBが悲鳴を上げはじめたようす。トラックバックを受けると443エラーが出てしまう。仕方がないので、MySQLへの移行作業を行ったのでメモ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください