mysqldumpのバックアップファイルからテーブルをリカバリ

1252 ワード

mysqldumpバックアップファイルからテーブルのデータをリカバリする必要がある場合があります.通常、2つの方法があります.
1):ファイル全体をテストサーバにインポートし、mysqldumpで必要なテーブルをエクスポートし、オンラインサーバにインポートします.
ライブラリの量が少ない場合は遅くありませんが、ライブラリの量が一定のレベルになると遅くなります.バックアップ時に圧縮が使用され、解凍する必要がある可能性があります.
2):mysql>show tables;mysqldumpバックアップ時のテーブルのバックアップ順序を表示します.show tablesの表示順序と同じです.テーブルの位置をロックし、awkまたはsedで必要なテーブルデータを取り出します.
方法2:
show tablesの結果は次のとおりです.
table_1
table_2
table_3
.......
table_n
この時点でtable_を復元したい10のデータの場合、awkを使用して次の操作を行います.
zcat mysqldump.date.sql.gz|awk '/^-- Table structure for table `table_10`/,/^-- Table structure for table `table_11`/{print}' >/tmp/table_10.sql

注意:awkの「と」の違いは、「」の中で``を使うと間違っています.ここで、`...に置き換えることができます.次のように
zcat mysqldump.date.sql.gz|awk "/^-- Table structure for table .table_10./,/^-- Table structure for table .table_11./{print}">/tmp/table_10.sql

sedを使用して、次の操作を行います.
zcat mysqldump.date.sql.gz |sed -n -e '/-- Table structure for table `table_10`/,/-- Table structure for table `table_11`/p' >/tmp/table_10.sql

実は方法2は、show tablesの表の順序がmysqldumpの時の順序と同じであることを知ることです.次にdumpから出たファイルの特殊フラグ--Table structure for table`table_n` .