mysql全库备份恢复某个表

早上小红过来问我说网站的一个功能没了,看了下数据库,少了个表。好吧,心里mmp,开始恢复数据

环境: 全库备份 恢复某一个表

1.1 查看备份数据

[aiye@aiye mysql_backup]$ ls -lh
total 16G
-rw-r--r-- 1 root root 5.4G May 21 00:58 2018_05_21_00_30_01.all.sql.zip     ##找到了备份数据

1.2  查看备份文件类型

[machao@iZ233xdnwmfZ mysql_backup]$ file 2018_05_21_00_30_01.all.sql.zip   ##查看文件类型

2018_05_21_00_30_01.all.sql.zip: Zip archive data, at least v3.0 to extract

1.3  解压

将压缩文件“2018_05_21_00_30_01.all.sql.zip”在当前目录下解压缩。

[aiye@aiye mysql_backup]$ unzip 2018_05_21_00_30_01.all.sql.zip

将压缩文件“2018_05_21_00_30_01.all.sql.zip”在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件

[aiye@aiye mysql_backup]$ unzip -n  2018_05_21_00_30_01.all.sql.zip -d /tmp 

1.4 恢复数据

如何从全库备份中抽取某张表呢,全库恢复,再恢复某张表小库还可以,大库就很麻烦了,那我们可以利用正则表达式来进行快速抽取,具体实现方法如下:

1.从全库备份中抽取出t表的表结构    sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `domain`/!d;q'

查找到了domain表的结构

[aiye@aiye mysql_backup]$ sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `domain`/!d;q' 2018_05_22_00_30_01.all.sql    
DROP TABLE IF EXISTS `domain`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `domain` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `domain_name` varchar(255) NOT NULL DEFAULT '' COMMENT '域名',
  `create_time` int(11) unsigned DEFAULT '0' COMMENT '创建时间',
  `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '域名状态(0- 正常 1-封禁 -1 删除)',
  PRIMARY KEY (`id`)
) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
2. 从全库备份中抽取出t表的内容

[aiye@aiye ~]$ grep'INSERT INTO `domain`'  2018_05_22_00_30_01.all.sql

INSERT INTO `domain`
VALUES
    (
        1,
        www.baidu.com',
        1523781065 ,- 1
    ),
 
 

 

转载于:https://www.cnblogs.com/mclzy/p/9078815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值