mysqldumpして直接zip圧縮するコマンド(windows、7-Zipを知らない人向け)
mysqldumpで、ダンプして、出力のSQLファイルを直接zip圧縮するコマンドを解説する。なお、これはwindowsのコマンドであるので注意。
環境ごとのページ一覧
このページは、Windowsで、なおかつ7-Zipがセットアップされていない環境向けのページである。直接圧縮については、環境ごとに3つのページを作成しているので、確認のこと。概略
mysqldump自体には、zip圧縮の機能はない。なので、mysqldumpの出力を、圧縮ソフトである7za.exeに直接送って圧縮する、という手法で実現する。
7za.exeと、その付属ファイルについてはこちらに用意した。このファイルをダウンロードして解凍し、そのフォルダの中で作業頂きたい。
mysqldump出力ファイル直接圧縮用7za.exe(zipファイル)
コマンド
コマンドは下記のとおりである。
mysqldump -u username -ppassword dbname | 7z\7za.exe a dumpfilename.sql.zip
具体例
少し具体的に書こう。DB情報等が下記であったとする。
項目 | 値 |
---|---|
DBユーザ名 | pudding |
DBパスワード | qwerty123456 |
DB名 | zipcode |
このDB情報等を反映すると、下記のように書くことになる。
mysqldump -u pudding -pqwerty123456 zipcode | 7z\7za.exe a dumpfilename.sql.zip
出力されるsqlファイル
出力されるSQLファイルは、普通にダンプする場合と全く同じである。
直接zip圧縮される
なお、このコマンドでは、テキストファイルとしてのSQLファイルは全く生成されない。たとえば、「30GBのダンプファイル(SQLファイル)の出力が予想されるがHDD空き容量が10GBしかない」という場合であっても、おそらくダンプできる。
「zip圧縮される過程で、一旦テキストファイルとして30GBのSQLファイルが生成されるのでは?」と、不安になる人もいると思うが、上記コマンドでは、そのようなことはない。安心である。
用途
zip圧縮されるということで、下記のような場面で使われることが多いだろう。
- ストレージ空き容量が少ない
- 別のサーバにダンプファイルを転送したいが、通信回線に負担をかけたくない
- 別のサーバにダンプファイルを速く転送したい
- 非常用のバックアップとしてダンプするので、極力、保存するファイルサイズを小さくしたい