データベース障害(その4)

治った治ったと言いながら、その4まで来てしまいました。

 

========関連記事========

今日の不具合は深刻ではあるんですが、すぐに復旧しました。
昨日のブログで再稼働し始めたかに思えた、DBサーバですが、
気が付くと、新しいデータの書き込みが出来ていませんでした。
PHPのエラーを表示すると
Table ‘xxx’ is read only
となっていて、今回、障害を起こしたテーブルが読み込みのみの状態になっていました。
そういえば 昨日 復旧してから再起動してないなぁと思って再起動すると
ディスクのエラーチェックが走って、
ctrl+d
で続行とか何とか言われたので、raidディスクにエラーがあるようでした。
仕方ないので、ctrl+dを押して続行みたいな事を言われたらrootのパスワードを打って
fsck -y /dev/mdxxx
と打って回復しました。
それから
reboot
してみると、無事に立ち上がってくれました。
もしかすると、他のSSDでもエラーがあるのかもしれません。
容量もキツくなってきているので、SSDを買い換えた方が良いかもしれませんが予算に余裕ができないと許可がおりそうにもないので今後の課題です。
————————————————————————————-
最終的な復旧までのまとめを書くと(私の環境でのまとめです)
データベース障害が発生したら
top
で状況確認後MYSQLがフリーズしていたら
kill -9 プロセスNO
で強制終了して、テーブルに異常が無いか確認する。
SSD-RAID-0でエラーのあるSSDを把握して、必要ならば電源を切って、エラーのあるSSDを取り外す。
force fsck
を打ってから再起動する
raidのmdxxにエラーが出ていたらctrl+Dで続行せずに
fsck -y /dev/mdxxx
として修復を試みて、エラーが無いことを確認してから起動する
その後、エラーのあるMYSQLのテーブルを復旧する
myisamchk -r –sort_buffer_size=6500M –ft_min_word_len=3 /DBの絶対パス/テーブル名
修復が完了したら、再度
force fsck
を打ってから再起動してディスクエラーを確認する。
正常に起動したら復旧完了って感じです。
————————————————————————————-
今回の原因と思われるものは
・4台のRAID0のうち1台が壊れた
・外部アクセスの増加に伴って、メモリが足らなくなった
です、SSDの故障は仕方ないとしても、過負荷で処理しきれないのは問題なので
サーバのスペックアップとSSD総交換が今後の課題です。
その5が無いようの祈りながら今日は眠ります。

雑談スレ

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)