• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL使用全库备份数据恢复单表数据的方法

    前言

    备份数据库时,采用了全库备份,但是因为某些原因需要回滚一个表的数据到备份数据库上,如果回滚整个库就比较费时间,因为可能这个表只有几十M,但是其它表可能有十几上百G,这时候就需要将需要恢复的表提取出来了

    我们在实际工作中都遇到过这种情况,一个MySQL实例中可能有多个database。而我们备份时,通常采用完全备份,将所有database都备份到一个文件中。

    但是,偶尔会遇到只恢复一个database或者一个表的情况。怎么解决呢?

    现在有备份库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,完工!

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • MySQL如何恢复单库或单表,以及可能遇到的坑
    • MySQL单表恢复的步骤
    • 从MySQL全库备份中恢复某个库和某张表的方法
    • mysql 从 frm 文件恢复 table 表结构的3种方法【推荐】
    • InnoDB 类型MySql恢复表结构与数据
    • MySQL 从全库备份中恢复指定的表和库示例
    • MySQL单表ibd文件恢复方法详解
    • MYSQL使用.frm恢复数据表结构的实现方法
    • 用mysqldump备份和恢复指定表的方法
    • MySQL 利用frm文件和ibd文件恢复表数据
    上一篇:MySQL用户账户管理和权限管理深入讲解
    下一篇:RR与RC隔离级别下索引和锁的测试脚本示例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL使用全库备份数据恢复单表数据的方法 MySQL,使用,全库,备份,数据恢复,