furoblog’s blog

妻と一緒にはじめました。1日1更新が目標です。

mysqldump ~オプションはちゃんと確認しようね~

mysqldump

mysqldump


なんか本番環境でやらかしちゃった人シリーズがめっちゃ読んでて面白かったので勝手にエントリー。

元記事はcrontab database ~君がしでかしてくれたもの~ - Qiitaです。

 

mysqldumpがもたらした悲劇

何がおこったのかというと、データ移行の時に他のテーブルのデータを誤って削除してしまったというものです。

結構前のことなので正直どんなツールを使っていたのかは知りませんが、多分ツールを使って目的のテーブル以外全てをtruncateしてしまった・・・というものですね。

 

どうなったの・・・?

正直生きた心地がしませんでした。

 

データ量が膨大なので、作業前にとったバックアップは関連テーブルのみ。

つまりバックアップを取得したデータ以外全てを抹消してしまいました。

 

幸い発生したのはサービス停止時間。

AWSを使っていて、直近のバックアップを確認すると運よくサービス停止後のバックアップを発見。

すぐに関連会社に連携して復旧をこころみ、バッチも全て流し直してなんとか影響なしで終えることができました。

 

対策

コマンドの確認も大事ですが、結局出力されたファイルをチェックするのが一番確実なので、mysqlimportをする前にdrop tableが存在しないかチェックするようにしました。

 

grep -i "drop table" filename

 

私に素敵な詩を作るセンスはないのでやめておきますが、元記事の詩は笑わせてもらいましたw

是非読んでみてください。

 

qiita.com