查看原文
其他

生产Mysql数据库数据恢复实战过程

2017-10-13 民工哥 民工哥Linux运维
点击上方蓝色文字关注公众号
1  实战环境介绍


线上环境

   mysql数据库一主多从的架构,主写从读进行读写分离,专用从库做数据备份,每天0点全备一次,12点增量备份一次,初始阶段数据量很小的情况按此方案,后续数据量大,读写频繁时,再进行相关调整,增加增量备份频次

系统环境

[root@mysql-1 ~]# cat /etc/redhat-release 

CentOS release 6.8 (Final)

[root@mysql-1 ~]# uname -r

2.6.32-642.el6.x86_64

[root@mysql-1 ~]# mysql -v

mysql  Ver 14.14 Distrib 5.7.17, for linux-glibc2.5 (x86_64) using  EditLine wrapper

主从同步

3306---->3307

3307 开启binlog日志,用做备份服务器,0点全备,12点增量备份

[root@mysql-1 ~]# netstat -lntup|grep 33

tcp 0 0 :::3306  :::* LISTEN  42473/mysqld       

tcp  0 0 :::3307  :::*  LISTEN  42769/mysqld

2   模拟线上数据写入


数据库同步完成,开启3307从库的binlog日志功能

查看目前的日志文件

写入数据测试同步

注:查看日志文件修改时间发现有数据写入

此时执行全备文件

全备之后写入数据

此时出现误操作删除了一个数据

出现误操作不可能第一时间发现,因此,继续写入数据

此时发现数据库数据出现问题,某个数据无法访问了,需要进行恢复


3  恢复数据


数据恢复具体操作如下

1、停止主从同步,应用与数据库的读写操作,防止数据再次写入

2、刷新binlog,生成新的日志文件

3、恢复全备文件到主库

4、合并binlog文件生成sql,删除误操作语句

5、进行增量恢复

此时主库数据恢复成功


4  测试主从同步


重新开启同步来测试数据是否同步


至此,整个数据恢复过程结束,通过binlog日志增量文件恢复数据成功

写文不易,如有帮助扫码打赏民工哥!!



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存