我的编程空间,编程开发者的网络收藏夹
学习永远不晚

[MySQL]mysql binlog回滚数据

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

[MySQL]mysql binlog回滚数据

[MySQL]mysql binlog回滚数据

先开启binlog

log-bin = /var/log/mysql/mysql_bin #binlog日志文件,以mysql_bin开头,六个数字结尾的文件:mysql_bin.000001,并且会将文件存储在相应的xxx/xxx路径下,如果只配置mysql_bin的话默认在C:ProgramDataMySQLMySQL Server 5.7Data下;
binlog_format = ROW #binlog日志格式,默认为STATEMENT:每一条SQL语句都会被记录;ROW:仅记录哪条数据被修改并且修改成什么样子,是binlog开启并且能恢复数据的关键;
expire_logs_days= 10 #binlog过期清理时间;
max_binlog_size = 100m #binlog每个日志文件大小;
binlog_cache_size = 4m #binlog缓存大小;
max_binlog_cache_size = 512m #最大binlog缓存大小。
service mysql restart #重启一下

安装binlog2sql的python代码
https://github.com/danfengcao/binlog2sql

apt-get install python-pip
git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
cd binlog2sql
pip install -r requirements.txt

测试在一张表里删除了数据和更新了数据以后,看看日志目录里binlog的日志生成情况,例如:

 

 

进入mysql查看一下开始和结束的pos位置,第一个框是删除,下面的是更新,开始位置和结束位置219--498     563---881

 

 

 show binlog events in "mysql-bin.000352"

 

用binlog2sql打印出sql语句和逆向回滚的sql语句,保存并导入

python binlog2sql.py -h127.0.0.1 -P3306 -uroot -p"xxxx" --start-file mysql-bin.000352  --flashback

两条sql就可以重新执行一下了

UPDATE `my_test`.`user` SET `UPDATETIME`="2019-04-08 10:57:06", `level`=1, `UPDATETIME1`="2019-04-08 10:57:06", `extend_id`=109999, `path`="0/1/", `id`=0 WHERE `UPDATETIME`="2020-02-10 18:11:09" AND `level`=1 AND `UPDATETIME1`="2020-02-10 18:11:09" AND `extend_id`=109999 AND `path`="0/1/" AND `id`=2 LIMIT 1; #start 498 end 797 time 2020-02-10 18:11:09
INSERT INTO `my_test`.`user`(`UPDATETIME`, `level`, `UPDATETIME1`, `extend_id`, `path`, `id`) VALUES ("2019-04-08 10:57:06", 4, "2019-04-08 10:57:06", 109999, "0/1/2/4/6/", 0); #start 4 end 422 time 2020-02-10 17:40:14

 

增加开始和结束位置

python binlog2sql.py -h127.0.0.1 -P3306 -uroot -p"XXX" --start-file mysql-bin.000352  --flashback  --start-pos 219 --end-pos 498

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

[MySQL]mysql binlog回滚数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

[MySQL]mysql binlog回滚数据

1.先开启binloglog-bin = /var/log/mysql/mysql_bin #binlog日志文件,以mysql_bin开头,六个数字结尾的文件:mysql_bin.000001,并且会将文件存储在相应的xxx/xxx路径下,如果只配置mysq
[MySQL]mysql binlog回滚数据
2021-12-01

MySQL数据库误删回滚的解决

某次一不小心,用了delete from xxx 删除了几条重要数据,在网上找了很多方法,但都比较零散,打算记录本次数据找回的过程。大致分为以下几步1、查看binlog是否开启# log_bin是ON,就说明打开了 OFF就是关闭状态,
2022-06-30

Mysql 数据库开启 binlog

1 简介 在MySQL中,binlog指的是binary log,二进制日志文件。这个文件记录了MySQL所有的DML操作。通过binlog日志,我们可以做数据恢复,做主从复制等等。对于运维或架构人员来说,开启binlog日志功能非常重要。
2023-08-18

MySQL数据库误删回滚怎么解决

这篇文章主要讲解了“MySQL数据库误删回滚怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库误删回滚怎么解决”吧!某次一不小心,用了delete from xxx 删除
2023-07-02

MySQL ORM框架的数据库回滚策略

MySQL ORM框架的数据库回滚策略是确保在事务处理过程中,如果某个操作失败,可以撤销之前的所有操作,从而保持数据库的一致性。不同的MySQL ORM框架可能有不同的回滚策略实现,但通常包括以下几个方面:自动回滚:大多数ORM框架会在检测
MySQL ORM框架的数据库回滚策略
2024-10-05

MySQL通过binlog恢复数据

目录mysql 日志文件binlog日志binlog日志开启日志开启方式:binlog 日志格式binlog日志查看工具:mysqlbinlog使用binlog恢复数据线下实操小结mysql 日志文件任何成熟软件都会有一套成熟的日志系统,当
2022-05-16

怎么使用mysql binlog恢复数据

这篇文章主要介绍“怎么使用mysql binlog恢复数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用mysql binlog恢复数据”文章能帮助大家解决问题。如果想通过 mysql 的
2023-07-05

编程热搜

目录