Mysql 全备文件提取单库单表恢复

2019年8月28日11:02:35 发表评论 107 views
摘要

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

 在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(测试数据)

Mysql 全备文件提取单库单表恢复

二、恢复单个库

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' all_database.sql > dgstack.sql
## 语句解释: 从全备份文件中将需要的库的建表语句和INSERT数据拿出来,然后再导入

mysql -uroot -p < dgstack.sql &
#恢复库

三、恢复单个表

模拟删除错误

Mysql 全备文件提取单库单表恢复

开始恢复

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 是库名》

Mysql 全备文件提取单库单表恢复
Mysql 全备文件提取单库单表恢复
如有出现报错,可以查看日志进行排查,或者进入QQ群一起讨论问题。

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: