MySQLのちょい小ネタ。
テーブル単位でバックアップ&リストア
1 通常のdump(データベース単位)
2 下記コマンドでテーブル単位にバックアップファイルを分ける
1 |
csplit dumpfile '/DROP TABLE IF EXISTS/' {*} |
3 対象のテーブルのファイルを探す
cspliteで分割されたファイルはxx通番になっています。
1 |
grep -il 'create table `テーブル名`' |
4 通常のリストア(db指定でOK)
やってることですが、単純にダンプされたファイルのSQLをテーブル単位で区切って入れているだけです。
参考リンク
テーブル単位のリストア
MySQLのダンプファイルから任意のテーブルのみリストアする
csplit
csplitコマンド の使い方 csplit は区切り単語でファイル分割
バックスラッシュの入ったSQLについて
イコールの場合二重のバックスラッシュ、likeの場合、4重のバックスラッシュになります。
[…] ダンプファイルを下記方法でテーブルごとに区切る。 参考MySQL小ネタ テーブル単位のリストア・SQLの小ネタ(バックスラッシュの検索… […]