mysql如何从全备份文件中恢复单库单表
从全备份中恢复单个库和单表方法
mysql -uroot -ppassword testdb --one-database 192.168.1.100_all_databases_dump_2021-11-18.sql
可以看出这里主要用到的参数是--one-database简写-o的参数,极大方便了我们的恢复灵活性
如何从全库备份中抽取某张表呢?可以利用正则表达式来进行快速抽取,具体实现方法如下:
第一步:(提取表结构schema语句)
sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `tbl_name`/!d;q' 192.168.1.100_all_databases_dump_2021-11-18.sql >/tmp/schema.sql & #sed -i 's/tbl_name/tbl_name_20211117/g' schema.sql
第二步:从全库备份中抽取出表的data内容
grep 'INSERT INTO `tbl_name`' 192.168.1.100_all_databases_dump_2021-11-18.sql >/tmp/data.sql & #sed -i 's/tbl_name/tbl_name_20211117/g' data.sql
后续,将数据恢复到需要的环境即可。