binlogでdiskfull

重たい集計処理を改修したので、集計結果に誤りがないか確認をしたかった。
そのテストのために、集計対象のデータを本番のDBからdumpし開発環境に突っ込んだ結果diskfull。
原因は、binlogでした。*1 *2

解決方法は2つ

  1. LVMで開発環境下なので、容量を足す
  2. binlogを消す

1の方法ですぐに解決したと思うが、
binlogの削除をやったことがなかったので2つめの方法をやることに。

binlogの削除 - purge master log

ぐぐったら、purge masger log でbinlog削除できそう。
でも、diskfull状態でうまくいくのか → うまくいきませんでした。

binlogの削除 - rm

purgeがうまくいかなかったので、rmすることに。
さて、MySQLが動いている状態でrmしていいものか。
すくなくとも、現在openされているbinlogをrmで削除するのはマズイ気がする。
よって、MySQLを止めた後にrm。
ついでに、binlogを吐かないように設定変更しMySQL起動。

まとめ

開発環境だからって対応が適当すぎだと書いてて思った。
あと、いい加減会社に鍵本を持って行かないと。

*1:dumpしたファイルは1Gほどあった。対象データが少ない期間でテストするべきだった。

*2:過去に開発環境でsslなreplicationのテストをしたため、binlogを出力するようにしていた。