自宅サーバ、そろそろ自宅やめてさくらVPSにしようと思い立ってさくらのVPSを契約し1年経った。使ってないのに1年経った、アホい。アホイ道選手権大会なので、最近出た東京リージョンのSSDプランへ変更(というか契約しなおし)構築を開始した。
- いままで: samidare.kerox.info
- これから: yukizuki.kerox.info
ちなみに、自宅サーバのHDDはこわれそうらしくって、1年ぐらい read only化されている。つまり、読み取り専用で1年も稼働していたのだ。がんばるナァ!関心!
面倒くさいので、su して全部rootで実行;
(伝統的に -pのあとのパスフレーズにスペース入れない)
# mysqldump -u root -x --all-databases -punkounko | gzip | ssh sakadon@yukizuki.kerox.info 'cat > ~/dump.sql.gz'
local には書き込めないので、すべての標準出力をsshで引越し先にぶち込んでいる。mysqldumpしてデータベースを引っ越す。CentOS7ではmariadbに変更となったが直接打ち込む分には問題無さそう?(まだ問題が表面化してないだけかもしれない)
ちなみに、readonly化されているので、mysqldumpがtmpファイルを作成できずに;
mysqldump: Couldn't execute 'show fields from `cdef`': Can't create/write to file '/tmp/#sql_c89_0.MYI' (Errcode: 30) (1)
などと宣う。ちょっとこれは回避方法がない。USBフラッシュメモリなどを指してmntし、そちらに回すなどするしかない様子。しかし調べてみたら、昔の自分が違うHDDを本体にぶっさしていたようで、そっちは書き込める。
[root@samidare backup]# fdisk -l Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 * 1 19457 156288321 8e Linux LVM Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 * 1 13 104391 83 Linux /dev/sdb2 14 121601 976655610 8e Linux LVM
sdbが多分それ。助かったね!!!serverfaultを参考に以下のように回避
# export TMPDIR=/backup/rescuetmp ; mysqldump -u root -x --all-databases -punkounko > /backup/rescuetmp/backup.sql
だめだ、うまくいかない。dump途中でerrcode 30で止まる。仕方ないので、remountでrw復旧出来ないか試す。
[root@samidare backup]# mount -o remount,rw /dev/mapper/VGmain-mainSlash mount: ブロックデバイス /dev/mapper/VGmain-mainSlash は書き込み禁止です、読込み専用でマウントします
fmfm、知ってるわボケ!!!!こちらを参考にfsckでぐるぐるする。
[root@samidare backup]# umount /dev/mapper/VGmain-mainSlash [root@samidare backup]# fsck -t ext3 /dev/mapper/VGmain-mainSlash ...
なんか/dev/mapper/を含むのか含まないのかわからないが、どっちも試したがどうもうまくいかない。堂々巡り感が強くなってきており、打開策が見当たらない。うんこ
ここで再起動させる。一か八か、な感じで。
…とおもい、復活してきたので、mysqldumpしたらdump出来た!!やったーーーーー!!よくわからんけど今のうちだ!
# mysqldump -u root -x --all-databases -punkounko > /backup/rescuetmp/backup.sql
とりあえず、問題ない領域へ出して対処する。(そのあと、↑にだしていたsshでdumpも実行しといた。何事も一歩ヅツ…)
というとで、こんなことに成る前にbackupを定期的に取るか、もしくはロードアヴェレージがすばらしい器機で構築するか、黙ってAWS RDS使ってろってこったな。まあ、さくらのVPSもハードウェア自体はかなりお金掛けてるんでしょうし、論理構成されてるだろうから、不安はグッと下がりますね。
新環境yukizuki.kerox.infoでは以下のようにしてぶっこみ。
# gzip -d backup.sql.gz # mysql -u root -p < backup.sql
よかったね
(30分後追記)やはりfsck効いたようで、/dev/mapper/VGmain-mainSlash/がrwマウントされている。fsck -t 馬鹿にせず撃ちまくり、再起動をする度胸を試したことにより、成功を手にしたのだ。終わり