mysqldumpした中身をテーブルごとに分割する

By | 2017/12/28

度々忘れるのでメモ。
mysqlでバックアップをとるときにmysqldumpを使用してますが、たまにこれを使ってデータを復元したい場合があります。(そのときのデータの状態を見たいとか。)

でもこの容量がでかくて、データベースに戻すのも時間がかかるし、データベースに戻せない状況があると思います。

そこでmysqldumpした内容をテーブルごとに分割して、テーブルごとに中身を確認できる状態を作ります。

csplit dumpファイル名 '/DROP TABLE IF EXISTS/' {*}

つまり「DROP TABLE IF EXISTS」と書いてあるところで区切ってファイルにしてくれるありがたいコマンドです。

分割されたファイルはxx00とかいうファイルになるので、lessなどで目的のテーブルのファイルを探します。アルファベット順にファイルができるのでそれほど苦労なく探せるでしょう。そんなに大きなファイルでなければテキストエディタで開いても問題ありません。
また、一つ一つのファイルは個別にデータベースに復元できるのでこれもありがたい。

 


コメントを残す

メールアドレスが公開されることはありません。