先日、サーバー障害により、このブログ(KYS-LAB)含め各種の CMS のデータベース(MySQL)が、破損。複数のデータベースを管理していたサーバーだけに、泣きそうになりました。
定期的にバックアップを取っていれば何も問題はないのですが、中には最近取ってないモノもあったりで、やはり自動化させないと (お客さんのはきちんと取ってますよ、念のため)。
一部のデータは、データが消去されていたり、破損がひどく修復できませんでしたが、大半はMySQL のテーブルを修復すると回復したので、以下その手順。
phpMyAdmin でバックアップ
- phpMyAdmin(ver.2.10.1)
- MySQL(5.1.22-rc)
- Movable Type 4 のデータベース
まずは、バックアップを取りましょう。鉄則です。
【1. phpMyAdmin にログイン】
使用言語を間違えないように。
【2. データベースを選択】
【3. エクスポートで、バックアップ】
「DROP TABLE / DROP VIEW を追加」のチェックを忘れずに(インポートするときに、以前のテーブルとの重複を制御するため)。
エクスポートした MySQL データをローカル上に大切に保存しておきましょう。
phpMyAdmin で MySQL の修復
【1. オーバーヘッドのテーブルを最適化】
「オーバーヘッドのあるテーブルを確認してください」をクリック
オーバーヘッドのあるテーブルが選択される
「構造」タブを選択し、画面下の「オーバーヘッドのあるテーブルを確認してください」をクリック。自動で、オーバーヘッドしているテーブルにチェックがつく。
「チェックしたものを:」のリストから、「テーブルを最適化する」を選択して実行 【 OPTIMIZE TABLE コマンド】。
参考:MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.2.5 OPTIMIZE TABLE 構文
データレコードを削除したり再編成したりするとゴミ(未使用領域)がたまるので、それを最適化するコマンドです。ハードディスクの最適化と一緒ですね。
【2. 破損したテーブルを修復】
破損された可能性があるテーブルを選択。
今回の場合、なぜか「使用中」という表示が消えないテーブル発見。
怪しそうなテーブル発見。コイツか!
構造をみてみるとエラーが出ていた。
エラーの表示画面
問題のテーブルを選択したまま、「チェックしたものを:」のリストから、「テーブルを修復する」を選択して実行【 REPAIR TABLE コマンド】。
参考: MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 8.5.2.6 REPAIR TABLE 構文
以上の作業で、無事データベースを修復できました。
あくまで、私の場合ですので、環境やデータベースによって異なると思います。くれぐれも事前のバックアップと、作業は自己責任でお願いいたします。
いずれにせよ、日頃の定期的なバックアップが一番大切ですな。




![商用OK・加工OKの無料画像素材集[KOYU写]](http://www.kys-lab.com/common_files/img/banner/kys_photo_banner_120x90.gif)



コメントする