Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5205304
  • 博文数量: 1004
  • 博客积分: 8199
  • 博客等级: 中将
  • 技术积分: 13042
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 20:19
个人简介

脚踏实地、勇往直前!

文章分类

全部博文(1004)

文章存档

2020年(1)

2019年(93)

2018年(208)

2017年(81)

2016年(49)

2015年(50)

2014年(170)

2013年(52)

2012年(177)

2011年(93)

2010年(30)

分类: Mysql/postgreSQL

2014-09-30 09:39:14

  采用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 --

阅读(2757) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~