mysqldumpを使って圧縮しておいたダンプファイルから一部のデータベースのみを抜きだす

mysql

■mysqldumpの–all-databasesオプションを付けて全データバックアップしたファイルから特定のデータベースだけ切り出す

全データベースの情報を、mysqldumpを使ってファイルにバックアップしていました。こちらの記事のようにmysqldumpの結果を直接gzipで圧縮してありました。

圧縮したファイルで30GB。その中の後半に記録されているデータベースのダンプファイルのみ取得したい要件が出てきました。ファイル容量がとても大きなバックアップデータです。

 

 

やりたかったことのまとめは以下のとおりです。

・圧縮されたファイルから、対象のデータベースのダンプファイルのみを切り出す

・切り出したものも、gzipで圧縮しておく。(ディスクがないの。。)

以下のコマンドで対応できました。

zcat バックアップファイル.gz | sed -n '/^-- Current Database: `データベース名をここに書く`/,/^-- Current Database: `/p' | gzip > 切り出した結果.gz

 

無事に切り出すことができました。た、助かった。。。