MySQL 从全库备份中恢复指定的表和库示例
MySQL从备份数据库中恢复指定的表和库示例
在Mysqldump官方工具中,如何只恢复某个库呢?
全库备份
[root@HE1~]#mysqldump-uroot-p--single-transaction-A--master-data=2>dump.sql
只还原erp库的内容
[root@HE1~]#mysql-uroot-pMANAGERerp--one-database<dump.sql
可以看出这里主要用到的参数是--one-database简写-o的参数,极大方便了我们的恢复灵活性。
那么如何从全库备份中抽取某张表呢,全库恢复,再恢复某张表小库还可以,大库就很麻烦了,那我们可以利用正则表达式来进行快速抽取,具体实现方法如下:
从全库备份中抽取出t表的表结构
root@HE1~]#sed-e'/./{H;$!d;}'-e'x;/CREATETABLE`t`/!d;q'dump.sql DROPTABLEIFEXISTS`t`; /*!40101SET@saved_cs_client=@@character_set_client*/; /*!40101SETcharacter_set_client=utf8*/; CREATETABLE`t`( `id`int(10)NOTNULLAUTO_INCREMENT, `age`tinyint(4)NOTNULLDEFAULT'0', `name`varchar(30)NOTNULLDEFAULT'', PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8; /*!40101SETcharacter_set_client=@saved_cs_client*/;
从全库备份中抽取出t表的内容
[root@HE1~]#grep'INSERTINTO`t`'dump.sql
INSERTINTO`t`VALUES(0,0,''),(1,0,'aa'),(2,0,'bbb'),(3,25,'helei');
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!