MySQL の DB 全バックアップの時は圧縮しながらの方が良い?

zabbix のデータが全部 MySQL に入ってるので定期的にバックアップを取っておきたい。

 

# mysqldump --all-databases -uroot > mysqldb.dmp

 

結構長い間ため込んでるのでDB自体が 1.5GB くらいになってる。これをそのままダンプすると、やっぱり 1.5GB くらいのダンプファイルができあがって結構大変。

しかもぼくの環境ではディスクのIOが遅くて20分くらいかかった。つらい。

こういう場合は圧縮しながら出せば良い。

 

# mysqldump --all-databases -uroot | gzip > mysqldb.dmp.gz 

 

圧縮のために計算してる時間よりディスクIOが減ったほうがガッツリ効いた。ぼくの環境だと、量は約400MB くらいまで減り、時間も10分くらいで終わった。コレは効果覿面だ。

ためしに bzip2 にしてみたら、量は300MBくらいにさらにガッツリつぶれたけど残念ながら時間は延びてしまって20分ほどかかってしまった。圧縮の演算に時間がかかってるんだな。

CPUリソースがクソほどあまってるなら bzip2 などの圧縮率の高いヤツに渡せば良いね。時間とサイズのバランスが良さそうなのは gzip だなあ。