分场景,对于mysql的数据恢复做一下总结:
一、有全备份
1、物理备份
比如使用xtrabackup,库级别的恢复,直接新搭建一个库,进行恢复就行。
对于表级别的快速恢复,可以使用恢复表空间,直接拷贝ibd文件就ok(myisam直接拷贝授权即可,innodb还需要执行alter table t discard/import tablespace)
2、逻辑备份
比如使用mydumper,库级别可以直接恢复。表级别可以恢复单个的sql文件。
对于mysqldump,恢复单表可以使用如下方法
sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `order`/!d;q' /backup/order.sql
grep 'INSERT INTO `order`' /backup/dbname.sql > order_data