正常来说我们在备份数据库的使用全库备份的方式,那么在对单张表做恢复的时候怎么操作比较方便呢?下面两种方法教你使用正则匹配的方式去把需要恢复的表数据拿出来,然后进行恢复:


方法一:基于awk工具进行截取

    mysql>use database-name;

    mysql>show tables;

    tables1

    tables2

    tables3

    ...

    我们现在要恢复tables2表的数据:执行下面的操作

awk '/^-- Table structure for table .tables2./,/^-- Table structure for table .tables3./{print}' mysqldump.sql > /tmp/tables2.sql


方法二:基于sed工具进行截取

    mysql>use database-name;

    mysql>show tables;

    tables1

    tables2

    tables3

    ...

    我们现在要恢复tables2表的数据:执行下面的操作

cat mysqldump.sql | sed -n -e '/Table structure for table .tables1./,/Table structure for table .tables1./p'> /tmp/tables1.sql


数据恢复:

    mysql>use database-name;

    mysql>source /tmp/tables1.sql