Nacky - Snowland.net

Nacky(Issei Ishii)がDJ/Composerのようなふりして書き散らすblogサイト

Info

Nacky - Snowland.net - blogを移転しました

2010-03-20

MySQLのファイルが吹っ飛んだ記

とあるwebサーバで障害発生!応答がないから強制リセット再起動!
なんか挙動が怪しいから別サーバに引っ越そうぜ!
ということでバックアップを取ります.

# mysqldump -u hoge -p hoge > dump.sql
mysqldump: Got error: 1146: Table 'hoge.fuga' doesn't exist when using LOCK TABLES
あれ,ロック時にfugaが無いとか意味不明なことを…
とりあえずロックなしでも問題なさげなのでさらに指定.
# mysqldump -u hoge -p hoge --skip-lock-tables > dump.sql
Error: Couldn't read status information for table fuga ()
mysqldump: Couldn't execute 'show create table `fuga`': Table 'hoge.fuga' doesn't exist (1146)
あれ,やっぱりfugaが無いんじゃないの.

/var/lib/mysql/hoge/の中をを見てみると,他のテーブルはみんな *.frm, *.MYD, *.MYIの3ファイルセットなのに,fugaだけfuga.frmしかない.

phpMyAdminで見るとテーブル一覧にfugaが無い.
コマンドラインのmysqlからshow tablesするとfugaはある.

どうもリセット時に飛んじゃったっぽいですね.
幸い,頻繁に更新するテーブルじゃなかったので,1ヶ月前のバックアップから中身を取り出せます.

しかしこのエラーのおかげでmysqldumpが完走しない.
ということで,とりあえず/var/lib/mysql/hoge以下を全コピー.
別サーバに持って行きます.

別サーバのmysql上,同名でDB作成.
mysqldを止めて,旧サーバから持ってきたファイルを上書きします.
中途半端なfrmだけのテーブル用ファイルは削除.
1ヶ月前のバックアップから該当テーブルのSQLを流し込んで一応復旧.

しかしこのままだとなんか不安が残るので,あらためて全文をdumpしてから再度流し込み.
その後は特に問題なく動いているようです.


posted at 21:53:03 on 2010-03-20 by nacky - Category: Com/Tech

ソニーストア

TrackBack

このエントリにトラックバックはありません
トラックバックURL

Comments

No comments yet

Add Comments