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圧縮されるということで、下記のような場面で使われることが多いだろう。

  • ストレージ空き容量が少ない
  • 別のサーバにダンプファイルを転送したいが、通信回線に負担をかけたくない
  • 別のサーバにダンプファイルを速く転送したい
  • 非常用のバックアップとしてダンプするので、極力、保存するファイルサイズを小さくしたい

圧縮ファイルで出力

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください