首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

通过binlog日志恢复表记录

1 使用binlog日志 1.1 问题 利用binlog恢复库表,要求如下: 启用binlog日志 创建db1库tb1表,插入3条记录 删除tb1表中刚插入的3条记录 使用mysqlbinlog恢复删除的...需要将binlog日志格式修改为STATEMENT .. .....日志恢复表记录 binlog会记录所有的数据库、表更改操作,所以可在必要的时候重新执行以前做过的一部分数据操作,但对于启用binlog之前已经存在的库、表数据将不适用。...根据上述“恢复被删除的3条表记录”的需求,应通过mysqlbinlog工具查看相关日志文件,找到删除这些表记录的时间点,只要恢复此前的SQL操作(主要是插入那3条记录的操作)即可。...50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; 2) 执行指定Pos节点范围内的sql命令恢复数据 根据上述日志分析,只要恢复从2014.01.12 20:12:14

68210

binlog server伪装master恢复增量数据

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

69020

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.4K10

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 生成反转...2、恢复流程说明 按照正反两种方式分别进行测试恢复 2.1 正向恢复 主要思路 通过全量备份恢复当日0:00时间点的数据 通过binlog恢复当日0:00-22:00错误语句之前的全部语句 2.2 反向恢复...主要思路 使用binlog2sql从binlog日志中提取错误语句的反向语句 在当前已经执行了错误语句的数据库执行反向语句,将数据恢复至错误语句执行前的状态 3、数据准备 3.1 查询当前binlog...4.2 反向恢复 反向恢复时通过binlog2sql,将错误执行的update语句反转,再update回来 4.2.1 安装binlog2sql 项目地址: https://github.com/danfengcao

1.8K30

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

众所周知,binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷!...这可以根据前面提到的mysql-bin.000003的新binlog日志进行恢复。...8) 从binlog日志恢复数据 恢复命令的语法格式: mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名 --------------------...----------------- 另外: 也可指定时间节点区间恢复(部分恢复): 除了用pos节点的办法进行恢复,也可以通过指定时间节点区间进行恢复,按时间恢复需要用mysqlbinlog命令读取binlog...总结: 所谓恢复,就是让mysql将保存在binlog日志中指定段落区间的sql语句逐个重新执行一次而已。

2.6K80

【MySQL】通过SQL_Thread快速恢复binlog

将数据库回档至指定时间点或位置,常常是使用全量备份+binlog增量实现的。 而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题。 因为恢复binlog速度十分慢,并且容易出错。...通过sql_thread恢复 处理思路: 1)重新初始化一个实例,恢复全量备份文件。 2)找到第一个binlog文件的position,和剩下所有的binlog。...binlog恢复。...该测试使用的版本为:MySQL 5.7.16 效果: 快速恢复到指定位置点,即通过全备文件+binlog恢复到故障前的最后一个position。...2)性能相对较好,在大量binlog的情况下,可以加快恢复速度。 3)在某些版本可能可以通过MTS来加快增量速度,使恢复更快。 缺点: 1)需要关闭mysqld。

1.3K51

通过MySQL relaylog + SQL_Thread 增量恢复binlog

而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错。...〇 处理思路:     1)重新初始化一个实例,恢复全量备份文件。     2)找到第一个binlog文件的position,和剩下所有的binlog。     ...+binlog恢复到故障前的最后一个position。...并且在需要增量的binlog文件越大的情况下,效果越明显。 〇 优点:     可以断点恢复,人为控制进度,比如stop slave或者遇到错误时,可以断点恢复。    ...性能好,在大量binlog的情况下,可以加快恢复速度。     在某些版本可以利用多线程复制来加快增量速度,时恢复更快。 〇 缺点:     需要关闭mysqld。

1.3K20

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

原理及其使用 生产上误删数据、误改数据的现象也是时常发生的现象,作为运维这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,...当然还有其他的一些操作方法,binlog2sql使用。 用途 数据回滚 主从切换后数据不一致的修复 从 binlog 生成标准 SQL,带来的衍生功能 闪回原理简析 开始之前,先说说闪回。...binlog 有三种可选的格式: statement:基于 SQL 语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错; mixed:混合模式,根据语句来选用是...安全,但 binlog 会比其他两种模式大很多; 利用 binlog 做闪回,需要将 binlog 格式设置为 row,因为我们需要最详尽的信息来确定操作之后数据不会出错。...但是,DDL 语句,比如drop,truncate 在整个使用中都是无法被回滚的,这种情况,只能用最近的备份数据+二进制日志恢复 本次实验,更改一条数据,并删除一条数据,然后从解析 binlog 信息,

53530

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

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

2.9K20

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

某天工作时间,一个二货犯晕登错生产当测试环境了,直接drop了一个数据库,需要紧急恢复!可利用备份的数据文件以及增量的 binlog 文件进行数据恢复。...具体思路归纳几点: 1、恢复条件为 MySQL 要开启 binlog 日志功能,并且要全备和增量的所有数据。 2、恢复时建议对外停止更新,即禁止更新数据库。...(这点很重要) 3、先恢复全量,然后把全备时刻点以后的增量日志,按顺序恢复成 SQL 文件, 4、然后把文件中有问题的SQL语句删除(也可通过时间和位置点),再恢复到数据库。...binlog文件移出,否则恢复过程中,会继续写入语句到 binlog,最终导致增量恢复数据部分变得比较混乱。...Enter password: 再次查看数据库,发现全备份到删除数据库之间的那三条数据也恢复了!!

4K71

数据恢复binlog回放的一个报错问题

数据恢复binlog回放的一个报错问题 今天早上在线上进行数据恢复的时候,看到了一个报错,发现挺有意思的,就给记录下来了。废话不多说,直接说场景。...01 问题描述 真实的案例如下: 某个数据库在回放binlog的时候,总是回放到一个指定的binlog行数发生报错,报错的信息是: ERROR 2006 (HY000) at line 7610607...根据报错,查看binlog的固定行数的信息,经过查询,发现该位置的binlog里面的内容是一个很大的SQL,SQL内容我这里就不贴出来了,在binlog中,这些内容都被解析成了一些乱码,类似下面这样:...BINLOG ' SnlPXg9GjD27dwAAAHsAAAABAAQANS43LjIwLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA...mysqldump] quick max_allowed_packet = 512M [mysql] max_allowed_packet = 512M 修改完成之后,重新连接mysql server,重放binlog

80830

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

传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog恢复数据。此法费时费力,甚至需要停机维护,并不适合快速回滚。...也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能。 MySQL闪回(flashback)利用binlog直接进行回滚,能快速恢复且不用停机。...请问多久能恢复数据?”DBA一脸懵逼,沉默十秒后,伸出一根手指。“你的意思是一分钟就能恢复?太好了。”小明终于有些放松,露出了一丝笑容。“不,我们中有个人将会离开公司。”DBA沉痛的说道。...闪回原理 binlog概述 MySQL binlog以event的形式,记录了MySQL server从启用binlog以来所有的变更信息,能够帮助重现这之间的所有变化。...Query OK, 4 rows affected (0.00 sec) 20:28时,tbl表误操作被清空 mysql> select * from tbl; Empty set (0.00 sec) 恢复数据步骤

77540

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

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

95030
领券