トリキュラー
WCCF連携チェッカー
WCCF連携チェッカー
チーム内の連携を確認出来るツールです。 見えにくい近くの選手との連携線などが確認しやすいかと思います。
WCCF九州蹴り会
九州の監督さん一緒に蹴りませんか?
最近のトラックバック
アクセスランキング

SEO対策: WCCF wccf

人気ブログランキングへ
ブログランキング


[ジャンルランキング]
ゲーム
14164位
アクセスランキングを見る>>

[サブジャンルランキング]
アーケードゲーム
349位
アクセスランキングを見る>>
twitter istintone

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

人気ブログランキングへ
クリックお願いします

  • 2010/06/15/Tue 11:58:09
  • COMMENT:0
  • TRACKBACK:0
  • CATEGORY:技術

【MYSQL】MYIが壊れた

昨日、社内で動かしているサーバーのディスクがぶっ飛びましたので、対策メモを。

結論から話すと、ディスク障害は仕方ないにしても、合わせて.MYIファイルの破損が発生していたので、そちらの対策をメモしています。もし同じ状態で困った方でしたら見てみるといいかも。



気づいたきっかけは、クエリ実行時の謎エラー。なにやらtableの破損が原因ぽいなということでrepairを掛けてみると、エラーぽい文字が。そのままテーブルを実行しようとすると下記のようなメッセージが発生。

ERROR 144 (HY000): Table './database_name/table_name' is marked as crashed and last (automatic?) repair failed
最後のリペアに失敗したって、何ぞそれ。というわけでエラーコードでぐぐる。


144 = Table is crashed and last repair failed
テーブルが破損してリペアに失敗しています。ってそれは見たら分かるわ。そのままクエリを実行しようとすると、


SQL Error: 1: Can't create/write to file '/tmp/table_name.MYI' (Errcode: 5)
何やらMYIファイルが触れないらしい。そもそもMYIファイルとは何なのか。Mysqlのテーブル情報はいくつかの種類に分かれますが、このうちmyisamのテーブル情報が3つに分かれて記録されています。で、以下がその3つ

dbname.frm・・・構造情報。どういったカラムで構成されるかなど。
dbname.MYI・・・インデックス情報。インデックスやプライマリーキー。
dbname.MYD・・・データ情報。実際のデータがはいってる。

と言った具合に分かれておりMYIファイルはそのテーブルのインデックス情報を持ったファイルになっています。そして何らかの原因でこれがread/write禁止になってしまい、現在のエラーが出力されているようです。こんなことめったに起きないということで、ディスクのほうがいかれたのではないかと思って調べたら見事にディスク障害発生してた。けどここは今回は割愛。

さて、ディスク障害ということでとりあえず現状のデータを抜いておきたいが、SQLを一切受け付けないので、dumpファイルも取れない。/var/lib/mysql/database_nameからデータを直接引っこ抜こうとしてもクラッシュしているデータだけ落ちない。と困っていたところ、よく考えたらインデックスが壊れただけで、運よくデータは残っているし構造も無事なので復元できるのではないかと調べてみました。


repair table table_name USE_FRM
USE_FRMオプションというものがあって、これを使うとusingを使わずにfrmからインデックスを再構成してくれるというもの。つまりMYIファイルの復元用のオプション設定らしいのです。これを実行するといままで触れなかったMYIファイルが見事に復活してクエリも有効に戻りました。やったねUSE_FRM!


今回の問題でネックになったのがrepairが使えないのでrepairのオプションも有効ではないだろうとたかを括ってしまったこと。そしてmyisamchkコマンドではこのUSE_FRMオプションにかわるものが無いということ。おそらくMYI復元に関してはこのUSE_FRMが唯一の手段のようです。


人気ブログランキングへ
クリックお願いします

COMMENT

NAME
TITLE
MAIL
URL
PASS (削除時に必要)
SECRET 管理者にだけ表示を許可する
COMMENT&
DECORATION

TRACKBACK

トラックバック

http://handflip.blog98.fc2.com/tb.php/124-01f7ca8c

この記事にトラックバックする(FC2ブログユーザー)

プロフィール

ton@

Author:ton@
Address:福岡県福岡市内
福岡で技術者しています。
WCCFが好きです。仕事は嫌いです。
嫁と娘ラブ。

ブログ内検索
イチオシ商品


PR


ブロとも申請フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。