备份数据库时,采用了全库备份,但是因为某些原因需要回滚一个表的数据到备份数据库上,如果回滚整个库就比较费时间,因为可能这个表只有几十M,但是其它表可能有十几上百G,这时候就需要将需要恢复的表提取出来了
现在有备份库fdcsqlmysql-2018_11_30-03_00_01.sql,里面有多张表,现在需要恢复其中fdc_document这张表的数据
提取建表语句
sed -e \'/./{H;$!d;}\' -e \'x;/CREATE TABLE `表名`/!d;q\' mysqldump.sql(备份文件的文件名)
sed -e \'/./{H;$!d;}\' -e \'x;/CREATE TABLE `fdc_document`/!d;q\' fdcsqlmysql-2018_11_30-03_00_01.sql
DROP TABLE IF EXISTS `fdc_document`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `fdc_document` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT \'文档ID\',
`uid` int(10) unsigned NOT NULL DEFAULT \'0\' COMMENT \'用户ID\',
`name` char(40) NOT NULL DEFAULT \'\' COMMENT \'标识\',
...
...
...
`entrust_rule` tinyint(3) unsigned NOT NULL DEFAULT \'0\' COMMENT \' 经纪人点击是否和用户签委托协议:1为有;0为没有\',
`audit` tinyint(3) NOT NULL DEFAULT \'0\' COMMENT \'审核:0为未审核;1为图片已审核;2为描述已审核;3为图片和描述都已审核\',
PRIMARY KEY (`id`),
KEY `idx_area_house` (`partition`,`category_id`,`status`,`is_off`) USING BTREE,
KEY `idx_model_house` (`model_id`,`status`,`is_off`) USING BTREE,
KEY `idx_community_house` (`community_id`,`estate`,`status`,`is_off`) USING BTREE,
KEY `idx_uid_house` (`uid`,`model_id`,`is_off`) USING BTREE,
KEY `idx_pid_house` (`id`,`pid`,`status`,`is_off`) USING BTREE,
KEY `is_video` (`is_video`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=211138 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
提取表数据
grep \'INSERT INTO表名\' mysqldump.sql(备份文件的文件名) > table_data.sql
这里应该执行grep \'INSERT INTOfdc_document\' fdcsqlmysql-2018_11_30-03_00_01.sql > document.sql
执行完后会得到文件document.sql,这就是需要的单独的表文件,就可以正常恢复表数据了
建库建表
先创建数据库,再根据上面的SQL语句创建表fdc_document
导入表数据
MySQL [document]> souce /data/backup/mysql/document.sql
ok,完工!
继续阅读与本文标签相同的文章
下一篇 :
SQL Server数据库————增删改查
-
搞清楚Spring Cloud架构原理的这4个点,轻松应对面试官
2026-05-19栏目: 教程
-
阿里云上云企业案例周刊·第1期
2026-05-19栏目: 教程
-
CC攻击有哪些特点以及如何防御CC攻击?
2026-05-19栏目: 教程
-
Generator函数
2026-05-19栏目: 教程
-
陈淮:美好生活、城市化与房地产怎样改变了中国
2026-05-19栏目: 教程
