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日志还原的更多相关文章

  1. 使用binlog日志还原数据详解

    1)看一下你的mysql服务器有没开启binlog日志(ON为开启,OFF为未开启) show variables like 'log_bin'; 2)找到你的binlog文件在哪 登录 mysql ...

  2. xtrabackup全量备份+binlog基于时间点恢复

    1.通过xtrabackup的备份恢复数据库. 2.找到start-position和binlog名称 cat xtrabackup_info 3.导出mysqlbinlog为sql文件,并确定恢复的 ...

  3. 脚本备份MySQL数据库和binlog日志

    用Mysqldump实现全库备份+binlog的数据还原 首先是为mysql做指定库文件的全库备份 vim mysqlbak.sh #!/bin/bash #定义数据库目录,要能找到mysqldump ...

  4. MySQL二进制binlog日志说明以及利用binlog日志恢复数据

    MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...

  5. load data 方式导入的数据不可以用binlog日志进行恢复,因为binlog里面不产生insert sql语句。

    QQ群里面有人问起这个问题:    用load data 导入数据的时候,在binlog文件中记录的不是insert 语句,这样的话,如果用load data 导入数据,当需要恢复数据库的时候  bi ...

  6. Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

    原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...

  7. mysql-备份和还原(普通还原和binlog还原)

    1)备份 mysqldump -uroot -proot share -l -F > /tmp/share.sql 说明:-l 锁表 -F 刷新日志文件(相当于flush logs) 2)还原( ...

  8. MySQL 採用Xtrabackup对数据库进行全库备份

    1,xtrabackup简单介绍 关于数据库备份以及备份工具.參考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已 ...

  9. 通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复

    在实际的生产环境中,为了管理方便,我们一般是通过 Xtrabackup实现实例的全库备份,即将实例上的所有数据库备份. 但是,考虑到快速恢复 我们常常面临的需求是快速还原单个数据库.针对初学者来说,网 ...

随机推荐

  1. sencha touch 在新版谷歌浏览器中painted事件无法触发解决方案以及carousel 控件、togglefield控件、滚动条失效

    在2.3/2.4版本中,新版谷歌浏览器(43.44版本)里面painted事件是不会触发的,以及carousel 控件.togglefield控件.滚动条失效,官方的解决方案如下,测试可用 会出现这个 ...

  2. RandomForest中的feature_importance

    随机森林算法(RandomForest)的输出有一个变量是 feature_importances_ ,翻译过来是 特征重要性,具体含义是什么,这里试着解释一下. 参考官网和其他资料可以发现,RF可以 ...

  3. Android定时执行和停止某任务

    一.定义全局变量 int runCount = 0;// 全局变量,用于判断是否是第一次执行 Handler handlerCount = new Handler(); 二.创建Runnable Ru ...

  4. windows 开启热点的命令行工具

    hotspot.bat @echo off @echo. setlocal enabledelayedexpansion if "%1" == "set" ( ...

  5. python使用selenium安装chromedriver的问题

    环境 win64位,python3.6, 问题与解决 说来也巧,今天无意中解决了两个多月前的问题,即用selenium调用chrome浏览器报错的问题:起因是在知乎中看到了一篇12306抢票的文章,用 ...

  6. 更新快排中的partition

    这一次是将partition 过程中, 维护三个区域. <x   =x  >x  三区域. 还有个待定的区域. /* * 将数组划分为三个分区, 小于arr[R], 等于arr[R], 大 ...

  7. Arrays 类的一些常见用法

    package cn.ljs; import java.util.Arrays; public class ArrayDemo { public static void main(String [] ...

  8. tensorflow的assgin方法

    官网API是这么说的 This operation outputs a Tensor that holds the new value of 'ref' after the value has bee ...

  9. TCP协议和TCP/IP(簇)

    TCP协议(传输层) 用于应用程序之间的通信. 连接的建立是经过三次握手,断开的时候四次挥手. TCP 包头很复杂,但是主要关注五个问题,顺序问题,丢包问题,连接维护,流量控制,拥塞控制 状态位例如: ...

  10. Linux下的几种IPC方式及其C语言实现

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...