xtrabackup全库还原+binlog日志还原
1、场景
mysql数据库误删某个库、误删表或者误删除数据
如下模拟图:备份策略定为每天凌晨进行全库备份,在B时间点进行了误操作以后,有两种恢复场景,一种是恢复到B时间点误操作前,一种是恢复到C时间点

以下为恢复到B时间点误操作前
需要说明的是,使用xtrabackup进行还原需要关闭数据库,为了避免关闭数据库造成的业务影响,在运维工作中可以提前搭建一个用于还原的备用数据库,在备用数据库中还原到误操作前一个时间点后,再使用mysqldump导出库或者某个表,再导入生产库,这样就避免了数据库关闭造成的全局影响。
2、还原步骤
2.1、查询A时间点这个全备份的位点
可以从xtrabackup的备份文件里面的xtrabackup_binlog_info日志查看

位点为:1931
2.2、模拟删除数据
delete from go_supplier where id=
2.3、找出删除数据的时候前一个位点
可以在CRT里面使用如下命令,同时打开日志记录功能,使用文本编辑器根据关键字搜索,找出执行误操作的命令前一个位点
show binlog events in 'mysql-bin.000003'
如下图,找出了误操作之前的位点为3701

2.4、全备份还原
- 关闭mysql
 - 再删掉mysql数据目录下的数据文件,避免出现如下错误提示,然后在my.cnf配置文件加入"datadir =/data/mysql"参数
 

- 先对备份做一个prepare,再使用命令进行还原
 
innobackupex --apply-log /data/backup/--08_09--
innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back /data/backup/--08_09--/
- 还原成功后还要对mysql数据文件进行权限的修改,切换到mysql数据目录下
 
chown -R mysql:mysql /data/mysql/*
2.5、启动mysql并使用binlog进行还原
mysqlbinlog --start-position="" --stop-position="" /var/log/mysql/mysql-bin. | mysql -uroot -p
检查数据是否恢复,搞定后使用mysqldump导出,再导入生产库即可。
注:如果还原到C时间点,可以跳过误操作的位点,继续恢复B时间点后的数据
mysqlbinlog --start-position="3851" /var/log/mysql/mysql-bin.000003 | mysql -uroot -p
xtrabackup全库还原+binlog日志还原的更多相关文章
- 使用binlog日志还原数据详解
		
1)看一下你的mysql服务器有没开启binlog日志(ON为开启,OFF为未开启) show variables like 'log_bin'; 2)找到你的binlog文件在哪 登录 mysql ...
 - xtrabackup全量备份+binlog基于时间点恢复
		
1.通过xtrabackup的备份恢复数据库. 2.找到start-position和binlog名称 cat xtrabackup_info 3.导出mysqlbinlog为sql文件,并确定恢复的 ...
 - 脚本备份MySQL数据库和binlog日志
		
用Mysqldump实现全库备份+binlog的数据还原 首先是为mysql做指定库文件的全库备份 vim mysqlbak.sh #!/bin/bash #定义数据库目录,要能找到mysqldump ...
 - MySQL二进制binlog日志说明以及利用binlog日志恢复数据
		
MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...
 - load data 方式导入的数据不可以用binlog日志进行恢复,因为binlog里面不产生insert sql语句。
		
QQ群里面有人问起这个问题: 用load data 导入数据的时候,在binlog文件中记录的不是insert 语句,这样的话,如果用load data 导入数据,当需要恢复数据库的时候 bi ...
 - Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)
		
原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...
 - mysql-备份和还原(普通还原和binlog还原)
		
1)备份 mysqldump -uroot -proot share -l -F > /tmp/share.sql 说明:-l 锁表 -F 刷新日志文件(相当于flush logs) 2)还原( ...
 - MySQL 採用Xtrabackup对数据库进行全库备份
		
1,xtrabackup简单介绍 关于数据库备份以及备份工具.參考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已 ...
 - 通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复
		
在实际的生产环境中,为了管理方便,我们一般是通过 Xtrabackup实现实例的全库备份,即将实例上的所有数据库备份. 但是,考虑到快速恢复 我们常常面临的需求是快速还原单个数据库.针对初学者来说,网 ...
 
随机推荐
- 使用Anaconda3配置多版本Python虚拟开发环境
			
有时候,为了使用比较干净的开发环境,或者为了测试一些版本的扩展库,我们可能需要创建虚拟开发环境,在不同的虚拟开发环境中,只安装需要的扩展库,这样可以最大程度上减少不同扩展库之间的兼容性带来的冲突或其他 ...
 - 1. Mysql数据库的安装
			
1. Mysql数据库的安装 (1)打开Mysql安装软件,同意相关协议进入下一步安装,在选择安装类型中选择[自定义]进入下一步安装. (2)选择安装的组件信息. (3)服务器软件安装目录 (4)数据 ...
 - Mac下利用safari调试 Cordova的WebApp
			
1.打开Safari,打开顶部菜单栏中的'偏好设置',切换'高级',将“在菜单栏中显示开发菜单”钩上: 2.打开iPhone的“设置”程序,进入“Safari”->“高级”页面开启“Web检查器 ...
 - mysql迁移sqlserver
			
数据迁移的工具有很多,基本SSMA团队已经考虑到其他数据库到SQL Server迁移的需求了,所以已经开发了相关的迁移工具来支持. 此博客主要介绍MySQL到SQL Server数据迁移的工具:SQL ...
 - amcharts去除版权标志
			
打开amcharts.js, 查找drb, 找到后,将drb:function(){......}程序{}中间内容清空, 或者改成drb:function(){return;}
 - c语言中的左移和右移
			
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如: int i = 1;i = i << 2; //把i里的值左移2位 也就是说,1的2进制是00 ...
 - 电子产品使用感受之--Mac Mini 买了之后有什么用?-- 开发啊!
			
2019.01.29 更新 Mac Mini 2018这么强劲的性能,不用来做点儿什么真是可惜了. 如果只是用来看看Youtube视频,打开网页看看twitter什么的,那可真是巨大的浪费了. 因为这 ...
 - mysql日期格式转换,如何保持原日期?CONVERT/Substring 函数截取。replace替换
			
http://www.cnblogs.com/stevenjson/p/3729577.html CONVERT(varchar(100), getdate(), 112)这种, 问题就出在getda ...
 - [No0000185]Java技术板块图
			
.List 和 Set 的区别 .HashSet 是如何保证不重复的 .HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? .HashMap 的扩容过程 .Has ...
 - centos 安装docker-compose
			
#查看docker compose版本 docker-compose version #查看pip版本 pip -v #上一条语句没有显示版本信息则运行下面语句安装 python-pip yum -y ...