概要
mysqldump取った!リリースした!バグってた!復元だ!復元は1テーブルだけでいい。他のテーブルは復元したくない!
って時のためのテーブル単位復元方法。
mysqldumpの取得
mysqldump -u user_name -t schema_name > 20151201.sqldump
sqldumpファイルをテーブル名ごとに別ファイルに出力
csplit backup_20151201.sql '/DROP TABLE IF EXISTS/' {*}
これで、DROP TABLE IF EXISTが最初の行のファイルが実行ディレクトリに分割されて出来上がる。
ファイル名は「xx01」のような形の連番。
復元したいテーブルのファイルを探す。
grep -il 'create table `TARGET_TABLE_NAME`' ./xx*
復元
mysql -u user_name -t schema_name < xx0N
でOK。