mysql通过操作binlog日志恢复数据

1.背景

由于公司业务需要,项目有一个每日通过推广实现返现功能。在测试环境进行测试的时候修改了定时任务执行时间为2s,实际生产环境中为为定时每天晚上2点。由于开发不慎导致部署到生产的执行时间为2s一次。污染了大部分的生产数据。由于平时频繁的更新,运维也没有做到部署前备份数据的操作。因此需要通过binlog日志恢复数据

2.binlog日志基本常识

binlog日志,即二进制日志文件。记录着mysql的所有sql变更操作。一般对于该日志文件我们主要用途有2个。一是增量备份(可以通过binlog日志来恢复数据),第二个是主从复制(即主节点维护一个binlog日志文件,从节点从binlog中同步数据增量备份)

关于主从复制之前有在搭建mysql主从进行了说明,此处不多介绍。本次主要讲讲如何恢复数据。
对于恢复数据常用的一条命令如下

/usr/bin/mysqlbinlog --start-datetime="2021-04-07 00:00:00" --stop-datetime="2018-04-07 20:58:00" --database=db_micro /var/lib/mysql/mysql-bin.000009 | /usr/bin/mysql -uroot -p123456 -v db_micro 

其中需要修改的部分为开始时间、结束时间、作用的数据库、root账户及密码
上述命令表示对db_micro执行2021-04-01 20:57:55至2018-04-07 20:58:18所有的非查询操作语句

3.实际操作

虽然我们没有部署前备份数据,但是我们有每天的备份数据。于是我们找到了4月7号备份的数据库文件,在db_micro执行了sql。并执行了上述命令将数据库恢复到了4月7号晚上8点58分以前的样子。在修改java代码后重新部署

参考文献

  1. Mysql 通过binlog日志恢复数据
  2. mysql通过mysqlbinlog日志恢复数据
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值