首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL基于Binlog数据恢复实战

1、环境状态说明 2、恢复流程说明 2.1 正向恢复 2.2 反向恢复 3、数据准备 3.1 查询当前binlog数据状态 3.2 查找恢复position区间 3.3 position点确认...4、操作恢复 4.1 正向恢复 4.1.1 恢复备份数据 4.1.2 恢复binlog日志 4.1.3 检查数据恢复状态 4.2 反向恢复 4.2.1 安装binlog2sql 4.2.2 生成反转...主要思路 使用binlog2sql从binlog日志中提取错误语句的反向语句 在当前已经执行了错误语句的数据库执行反向语句,将数据恢复至错误语句执行前的状态 3、数据准备 3.1 查询当前binlog...918611748 - 1094225331,反向恢复使用 4、操作恢复 4.1 正向恢复 4.1.1 恢复备份数据 将2021-09-13 00:00:00的全备数据恢复数据库。...注意:此语句必须在原库执行,数据库必须是当前错误状态,且数据库执行此错误语句后这些数据未发生其它更改,binlog日志也可正常使用

2.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql binlog恢复数据实战

    数据库备份 数据恢复的先决条件是,定时备份数据库,缩小binlog恢复范围.首先我们备份测试数据数据: mysqldump -uroot -p --database test > testBackSql.sql...数据恢复 在上面的操作中,我们备份了数据为164 id之前的所有数据,插入数据到了367之后被删库.假设我们并不知道id到了367.开始使用binlog分析日志: 首先使用 flush logs; 命令刷新二进制日志...刷新后,新的binlog用于做恢复数据时的记录, 因为当执行备份文件恢复数据binlog恢复时,都会产生新的binlog,不要和原来的数据进行冲突.  ...(如果涉及多个binlog,需要执行多个binlog恢复日志) 通过查询binlog,获取到最后恢复点:  /www/server/mysql/bin/mysqlbinlog /www/server/data...将原有备份数据恢复:  cat testBackSql.sql |mysql -uroot -p ? 备份数据已经恢复了,开始恢复二进制数据.

    3.6K10

    使用binlog2sql针对mysql进行数据恢复

    MySQL闪回原理与实战 DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚。传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog恢复数据。...也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能。 MySQL闪回(flashback)利用binlog直接进行回滚,能快速恢复且不用停机。...开胃菜 某天,小明因种种原因,误删了大批线上用户表的数据。他急忙找到公司DBA请求帮助,“客服电话已被打爆,大量用户投诉无法登陆,领导非常恼火。请问多久能恢复数据?”...使用 MySQL server必须设置以下参数: [mysqld] server_id = 1 log_bin = /var/log/mysql/mysql-bin.log max_binlog_size...Empty set (0.00 sec) 恢复数据步骤: 登录mysql,查看目前的binlog文件 mysql> show master status; +------------------+

    82040

    【删库跑路】使用Binlog日志恢复误删的MySQL数据

    开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQLbinlog日志是什么?通常是用来干什么的?...模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当时吓出一身冷汗。...看了上面binlog的定义,大家也应该能大致推理出binlog的三大用途: 恢复数据:今天要说的重点 数据库复制:主从数据库是通过将binlog传给从库,从库有两个线程,一个I/O线程,一个SQL线程,...所以说,想要能够恢复数据,首先,你得打开Mysqlbinlog,在平常你自己安装的单机Mysql中,默认情况下不会开启。下面就一步步地实践下如何开启你服务器上的Binlog日志。...当然,看完binlog日志恢复数据的原理,希望大家以后在定期备份数据库的脚本里,也能够加上刷新binlog日志的命令,这样一旦某天丢失数据,可以将当天binlog数据单独拿出来还原,做到清晰可辨,也加快恢复效率

    4.3K20

    mysql误操作binlog恢复

    mysql误操作binlog恢复步骤 记录具体步骤,方便日后回忆 一般正式环境使用数据库都会做全备份,但如果某个时刻数据库崩了,若利用全备份文件恢复,则在全备份到出现问题这段时间内的数据将会丢失,一般来说迫不得已也不会采取这种措施...,更直接是采用binlog恢复。...检查数据库是否开启binlog 使用show variables like '%log_bin%'检查是否开启 mysql> show variables like '%log_bin%'; +----...binlog里面的内容,其中# at + 数字中的数字就代表对应的pos时间点编号,并且其下一行还有对应操作发生的具体时间 找到我们要数据回滚的时间点 使用参数start-position和stop-position...重新进入数据库发现被删除的表已经恢复 mysql> use myDatabase; Reading table information for completion of table and column

    73520

    Mysqlbinlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷!...2)自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。...日志与数据库文件在同目录中 -->在MySQL5.5以下版本使用mysqlbinlog命令时如果报错,就加上 “--no-defaults”选项 查看mysql数据存放目录,从下面结果可知是/var/...由于上面在全备份的时候使用了-F选项,那么当数据备份操作刚开始的时候系统就会自动刷新log,这样就会自动产生 一个新的binlog日志,这个新的binlog日志就会用来记录备份之后的数据库“增删改”操作...8) 从binlog日志恢复数据 恢复命令的语法格式: mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名 --------------------

    2.8K80

    教你使用Binlog日志恢复误删的MySQL数据

    开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQLbinlog日志是什么?通常是用来干什么的?...模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当时吓出一身冷汗。...看了上面binlog的定义,大家也应该能大致推理出binlog的三大用途: 恢复数据:今天要说的重点 数据库复制:主从数据库是通过将binlog传给从库,从库有两个线程,一个I/O线程,一个SQL线程,...所以说,想要能够恢复数据,首先,你得打开Mysqlbinlog,在平常你自己安装的单机Mysql中,默认情况下不会开启。下面就一步步地实践下如何开启你服务器上的Binlog日志。...当然,看完binlog日志恢复数据的原理,希望大家以后在定期备份数据库的脚本里,也能够加上刷新binlog日志的命令,这样一旦某天丢失数据,可以将当天binlog数据单独拿出来还原,做到清晰可辨,也加快恢复效率

    2.1K10

    Mysql误删,恢复数据,binlog闪回,宝塔面板

    传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog恢复数据。 此法费时费力,甚至需要停机维护,并不适合快速回滚。...也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能。 MySQL闪回(flashback)利用binlog直接进行回滚,能快速恢复且不用停机。...本文将简单进行mysql根据binlog闪回数据的实战测试 基础知识准备 binlog是二进制日志文件,用来记录Mysql内部对数据库的改动(只记录对数据的修改操作),主要用于数据库的主从复制以及增量恢复...所以有这种根据binlog得到执行sql语句、闪回sql语句,我们只需要利用根据分析binlog,然后就可以找到准确的数据改动sql,并得到闪回sql,检查无误后执行就可以恢复数据了 准备工作 我们采用...set (0.01 sec) 接下来就是重点了,我们使用工具分析 查看当前的binlog文件名 mysql> show master status; 得到类似 +------------------+

    3.1K20

    Mysql 通过全量备份和binlog恢复整体数据

    某天工作时间,一个二货犯晕登错生产当测试环境了,直接drop了一个数据库,需要紧急恢复!可利用备份的数据文件以及增量的 binlog 文件进行数据恢复。...具体思路归纳几点: 1、恢复条件为 MySQL 要开启 binlog 日志功能,并且要全备和增量的所有数据。 2、恢复时建议对外停止更新,即禁止更新数据库。....sql 8.检查并移动binlog文件,并导出为 SQL 文件剔除其中的 drop 语句,查看 MySQL数据存放目录, 由下面可知是在/mysql_data下,将 binlog 文件导出SQL文件...binlog文件移出,否则恢复过程中,会继续写入语句到 binlog,最终导致增量恢复数据部分变得比较混乱。...使用04.sql文件恢复全备时刻到删除数据库之间新增的数据,编辑04bin.sql #删除里面的drop语句 [root@ocbsdb01 tmp]# vim 04.sql 将drop 操作下面的内容删除

    4.2K71

    数据恢复binlog2sql--原理及其使用

    原理及其使用 生产上误删数据、误改数据的现象也是时常发生的现象,作为运维这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,...当然还有其他的一些操作方法,binlog2sql使用。 用途 数据回滚 主从切换后数据不一致的修复 从 binlog 生成标准 SQL,带来的衍生功能 闪回原理简析 开始之前,先说说闪回。...我们都知道 MySQL binlog 以 event 为单位,记录数据库的变更信息,这些信息能够帮助我们重现这之间的所有变化,也就是所谓的闪回。...但是,DDL 语句,比如drop,truncate 在整个使用中都是无法被回滚的,这种情况,只能用最近的备份数据+二进制日志恢复 本次实验,更改一条数据,并删除一条数据,然后从解析 binlog 信息,...到使用 binlog2sql 工具来生成标准和回滚 SQL,来剖析整个运行过程。

    58930

    reverse_sql - Binlog数据恢复

    reverse_sql 工具介绍reverse_sql工具是一个用于数据恢复的工具,它支持MySQL 5.7/8.0和MariaDB数据库。...该工具可以帮助您在发生P0事故(最紧急的事故等级)时快速恢复数据,避免进一步的损失。使用reverse_sql工具非常简单,您只需要指定肇事时间和表名即可。...通过使用reverse_sql工具,您可以放心地进行数据库操作,即使出现错误也可以轻松地回滚到之前的数据状态,避免了数据灾难的发生。...总而言之,reverse_sql工具是一个方便实用的数据恢复工具,可以帮助您快速恢复数据,保障数据的完整性和安全性。...请记住,及时备份和恢复数据是维护数据库健康的重要一环,您可以在合适的时候使用reverse_sql工具来增强数据管理的能力。

    26530

    MySQL利用binlog恢复误操作数据(Python脚本)

    在线上或者测试环境误操作导致数据被删除或者更新后,想要恢复,一般有两种方法。...方法一、利用最近的全量备份+增量binlog备份,恢复到误操作之前的状态,但是随着数据量的增大,binlog的增多,恢复起来很费时。...说明: 0、前提是binlog的格式为row 1、要恢复的表操作前后表结构没有发生变更,否则脚本无法解析 2、只生成DML(insert/update/delete)的rollback语句 3、最终生成的...,也可以指定只恢复某个库的SQL 6、SQL生成后,请务必在测试环境上测试恢复后再应用到线上 (备注:获取实验中的Python脚本,请关注公众号(DBA的辛酸事儿)或扫描文末二维码,后台恢复binlog_rollback...-hlocalhost -uroot -pqcloud@2018 -S /tmp/mysql3306.sock < /tmp/rollback.sql 具体的参数使用方法如下: [root@VM_54

    1.1K30

    MySQL】通过SQL_Thread快速恢复binlog

    数据库回档至指定时间点或位置,常常是使用全量备份+binlog增量实现的。 而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题。 因为恢复binlog速度十分慢,并且容易出错。...通过sql_thread恢复 处理思路: 1)重新初始化一个实例,恢复全量备份文件。 2)找到第一个binlog文件的position,和剩下所有的binlog。...binlog恢复。...该测试使用的版本为:MySQL 5.7.16 效果: 快速恢复到指定位置点,即通过全备文件+binlog恢复到故障前的最后一个position。...当然,这种数据回档操作,也可以考虑带有flashback功能的工具。 性能对比 对于同一组binlog文件增量: 通过mysqlbinlog解析+导入的时间为69min。

    1.4K51

    ROW 格式binlogMySQL5.6上的数据恢复实验

    ROW 格式的binlogMySQL5.6上的数据恢复实验 5.6和5.7版本的MySQL,有个参数binlog_row_p_w_picpath,默认值为FULL,表示记录的是全部的binlog操作日志...此外binlog_row_p_w_picpath还可以是minimal,表示binlog记录的就只是影响后的行。如此一来使用ROW格式就能节约很多的磁盘空间。...*/; step5 准备恢复数据 mysqlbinlog mysql.000010 --stop-position=662771 > /root/22.sql                            ...                          # 导出step2中的那个正常的INSERT操作及其后面的全部SQL操作 step6 开始恢复数据 /etc/init.d/mysql start ...mysql < /root/all.sql  mysql < /root/22.sql mysql < /root/33.sql mysql < /root/44.sql step7 检查恢复后结果 >

    1.2K40

    binlog server伪装master恢复增量数据

    导读 接上一篇《一种MySQL备份恢复设计思路》,在上一篇文章中我们介绍了如何利用binlog来进行增量恢复,其中提到了用binlog server伪装master来进行增量恢复,那么今天我们来演示一下具体过程...首先你需要将binlogbinlog server上拷贝到一台新的MySQL实例,或者你可以直接在binlog server上新建一个实例,我们这里就利用node2 我们先查看node2的binlog...不管怎么样,node1的binlog已经注册上来了。接下来我们将node3作为node2的从库来进行数据恢复。...总结一下 整个过程实际上并不复杂,需要做的主要的就是如下几点: 找到需要恢复的起始GTID位点和终止GTID位点 从binlog server上拉取对应的binlog或者直接在binlog server...上部署一个空实例 注册binlog,这一步比较关键 设置异机恢复实例的gtid_purged,配置主从关系 利用命令start slave until SQL_BEFORE_GTIDS恢复到指定的位点

    72220

    通过MySQL relaylog + SQL_Thread 增量恢复binlog

    原文地址:http://blog.itpub.net/29773961/viewspace-2143726/ 数据回档常常是使用全量备份+binlog增量实现的。...而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错。...恢复binlog文件一般有两种方法: 〇 先解析成sql文件,再导入MySQL mysqlbinlog mysql-bin.000001 --start-position=n > /data/add.sql...:MySQL 5.7.16 效果:恢复全备文件+binlog恢复到故障前的最后一个position。...除了更准确的能够恢复错误之外,还有一个最大的好处是加快了binlog增量的速度。 补充一个额外的测试数据 对于同一组binlog文件增量: 通过mysqlbinlog解析+导入的时间为69min。

    1.4K20

    使用binlog2sql做数据恢复的简单示例

    前提条件 在实现数据恢复之前,需要我们的 MySQL 满足以下配置条件: [mysqld] server_id = 1 log_bin = bin max_binlog_size = 1G binlog_format...数据恢复 接下来我们将尝试恢复原来的数据,首先因为我们开启了二进制日志,所以其实我们的每次操作都被记录到了二进制日志当中,我们可以使用二进制查看命令,查询到我们刚才所做的操作痕迹。...binlog2sql 工具 binlog2sql 是大众点评开源的一款用于解析 binlog 的工具,详见:https://github.com/danfengcao/binlog2sql 使用 binlog2sql...使用 binlog2sql 将二进制文件解析为了 SQL 格式,这个文件当中包括我们之前做的建表 SQL 以及插入示例数据的 SQL,当然也包括我们误操作的 UPDATE 语句。...可以看到 binlog2sql 生成了:#start 2616 end 3028 位置的回滚 SQL。我们把这个 SQL 复制下来到 MySQL 中执行,即可实现数据恢复。 ? -END-

    50830
    领券