采用mysqldump备份整个数据库后,我们想单独从该文件中恢复某个表,这个时候就需要从该文件中单独提取该表的部分,包括创建该表的语句和insert部分的语句,然后单独做恢复,方法如下:1.找到创建语句的部分
若dump文件非常庞大的话,该过程是比较消耗时间的,我们建议导出备份的时候一个库一个文件,最好是一个表一个文件,这样恢复的时候就很方便了.
从mysqldump备份的文件中找到创建表的语句,这里的table是精确匹配,不支持模糊匹配.
[mysql@node2 data_bak]$ sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `tb_dic_class12`/!d;q' /db/mysql/data_bak/some_tables.sql
DROP TABLE IF EXISTS `tb_dic_class12`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tb_dic_class12` (
`class_id` int(11) DEFAULT NULL,
`class_name` varchar(20) NOT NULL DEFAULT '',
`createtime` datetime DEFAULT NULL,
`modifytime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
[mysql@node2 data_bak]$
2.找到insert的语句
grep 'INSERT INTO `tb_dic_class_myisam`' /db/mysql/data_bak/some_tables.sql>aa.txt
剩下的就是恢复的过程了,先执行创建表的语句,然后执行insert部分.
-- The End --
--转自