优米格
分享有营养的

稳住!使用mysqlbinlog紧急恢复误删mysql数据操作指南

BraUndress.png

看到这篇文章的你可能很着急,咱话就不多说了。

一、背景

操作失误,把数据库表全部删除了,然后我先用昨天的数据库备份文件还原到昨天的历史数据。

二、前提

使用mysqlbinlog恢复数据须知:

  • 确保你已经开启了Binlog

使用show variables like '%log_bin%';命令查看是否已开启binlog功能。

查看是否开启binlog

如上图所示,你的binlog文件是在/var/lib/mysql/目录下,以binlog开头的文件。

三、保护数据

  • 关闭业务系统,防止数据继续写入;

四、恢复数据

4.1 查看当前使用的binlog文件

show master status

查看当前使用的binlog文件

4.2 执行flush logs命令,让数据库从新的binlog文件从新写

flush logs

4.3 恢复

查看/var/lib/mysql/目录下的binlog文件,发现中间重启过mysql,昨天到今天使用的binlog文件有两个,所以得从两个文件进行恢复。

# 指定开始时间、结束时间
sudo mysqlbinlog /var/lib/mysql/binlog.000018 /var/lib/mysql/binlog.000019 --start-datetime='2021-08-27 09:50:00' --stop-datetime='2021-08-28 15:35:00' | mysql -u root -p --database=xiaofang_cloud -f

注意: 上面指定多个binlog文件的顺序很重要。

参考文章:

  1. MySQL – 常见的三种存储引擎
  2. 尝试用binlog恢复mysql数据
  3. 超级有用的15个mysqlbinlog命令
  4. mysqlbinlog — Utility for Processing Binary Log Files
  5. How to Restore data from binary log
  6. MySQL 5.7 – 通过 BINLOG 恢复数据
  7. mysql回滚到指定时间点
  8. 无备份情况下恢复MySQL误删的表
赞(1)
未经允许禁止转载:优米格 » 稳住!使用mysqlbinlog紧急恢复误删mysql数据操作指南

评论 抢沙发

合作&反馈&投稿

商务合作、问题反馈、投稿,欢迎联系

广告合作侵权联系