码迷,mamicode.com
首页 > 其他好文 > 详细

xtrabackup全库还原+binlog日志还原

时间:2018-11-15 22:36:28      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:HERE   使用   全局   backup   查看   stop   关闭   备份还原   alt   

场景:mysql数据库误删某个库、误删表或者误删除数据

如下模拟图:备份策略定为每天凌晨进行全库备份,在B时间点进行了误操作以后,有两种恢复场景,一种是恢复到B时间点误操作前,一种是恢复到C时间点

技术分享图片

以下为恢复到B时间点误操作前

需要说明的是,使用xtrabackup进行还原需要关闭数据库,为了避免关闭数据库造成的业务影响,在运维工作中可以提前搭建一个用于还原的备用数据库,在备用数据库中还原到误操作前一个时间点后,再使用mysqldump导出库或者某个表,再导入生产库,这样就避免了数据库关闭造成的全局影响。

1、查询A时间点这个全备份的位点

可以从xtrabackup的备份文件里面的xtrabackup_info日志查看

技术分享图片

位点为:1931

2、模拟删除数据

delete from go_supplier where id=25

3、找出删除数据的时候前一个位点

可以在CRT里面使用如下命令,同时打开日志记录功能,使用文本编辑器根据关键字搜索,找出执行误操作的命令前一个位点

 show binlog events in mysql-bin.000003

如下图,找出了误操作之前的位点为3701

技术分享图片

4、全备份还原

先对备份做一个prepare,再使用命令进行还原

1 innobackupex --apply-log /data/backup/2018-11-08_09-41-06
2 innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back /data/backup/2018-11-08_09-41-06/

还原成功后还要对mysql数据文件进行权限的修改,切换到mysql数据目录下

1 chown -R mysql:mysql /data/mysql/*

5、启动mysql并使用binlog进行还原

1 mysqlbinlog --start-position="1931" --stop-position="3701" /var/log/mysql/mysql-bin.000003 | mysql -uroot -p

检查数据是否恢复,搞定后使用mysqldump导出,再导入生产库即可。

 

 

 

 


 

xtrabackup全库还原+binlog日志还原

标签:HERE   使用   全局   backup   查看   stop   关闭   备份还原   alt   

原文地址:https://www.cnblogs.com/fuqu/p/9965823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!