mysql linux恢复单表_Mysql 全备文件提取单库单表恢复

目录

在mysql dba的日常实际工作中,一个实例下有多个库,而我们常见的备份就是全库备份。那么问题就来了,如果需要恢复单个库或者单个表,怎么办了,网上有很多人都有多种方法,今天,我自己结合众多资料,将实践记录下来,以便供参考。

环境介绍

[root@Admin ~]# cat /etc/redhat-release #系统版本

CentOS release 6.10 (Final)

[root@Admin ~]# mysql -V #mysql版本

mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

一、获取全量库备份SQL(测试数据)

938bbaf23972e03b6cb84061c1e6ee7f.gif

8677a9e407a8bb5c841ba1e71b75f1a5.png

二、恢复单个库

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' all_database.sql > dgstack.sql

## 语句解释: 从全备份文件中将需要的库的建表语句和INSERT数据拿出来,然后再导入

mysql -uroot -p < dgstack.sql &

#恢复库

三、恢复单个表

模拟删除错误

938bbaf23972e03b6cb84061c1e6ee7f.gif

b382067d8aed0e3820927c3d495d482b.png

开始恢复

sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `secu_org`/!d;q' 2019-08-27activity.sql> dg.sql

# 从全备份中提取出该表的建表语句

grep -i 'INSERT INTO `secu_org`' 2019-08-27activity.sql >> dg.sql

# 提取该表的insert into语句

# mysql -uroot -p fuqinactivity < dg.sql

# 导入到对应的库中《fuqinactivity 是库名》

740030c1dd83383274bb9336a9a78094.png

58b31c9fdd7f91f77da2c80d68464451.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值