【MySQL】DBのダンプファイルから任意のテーブルのみリストアする方法

DBの全てのテーブルのダンプを取得したけど、
容量がデカすぎる、、、さらには、その一部のテーブルのみ必要

そんなときに役立ったのがこちらのコマンド

環境は
CentOS6
MySQL

まずは「DROP TABLE IF EXISTS XXXXX」のダンプファイル内の行数を取得
$ egrep -in '^drop table if exists' dumpfile

次に、sedコマンドで特定行のみ抽出します。
$ sed -n '開始行,終了行p' ダンプファイル > 出力ファイル

出力したファイルをリストア
$ mysql --user=username --password=password DB名 < 出力したファイル

※ gzipで圧縮されている場合
$ zegrep -in '^drop table if exists' dumpfile.gz
$ zcat dumpfile.gz | sed -n '開始行,終了行p' > tablename.dump
$ mysql --user=username --password=password databasename < tablename.dump

コメント

タイトルとURLをコピーしました