当前位置: 首页 > article >正文

【MySQL】通过 Binlog 恢复MySQL数据

MySQL的binlog以event的形式,记录了MySQL中所有的变更情况,利用binlog我们就能够重现所记录的所有操作。

MySQL引入binlog主要有两个用途/目的:一是为了主从复制;二是用于备份恢复后需要重新应用部分binlog,从而达到全备+增备的效果。

MySQL的binlog有三种格式:

  • statement,基于SQL语句的模式,一般来说生成的binlog尺寸较小,但是某些不确定性SQL语句或函数在复制过程可能导致数据不一致甚至出错;

  • row,基于数据行的模式,记录的是数据行的完整变化。相对更安全,推荐使用(但通常生成的binlog会比其他两种模式大很多);

  • mixed,混合模式,可以根据情况自动选用statement抑或row模式;这个模式下也可能造成主从数据不一致。它属于MySQL 5.1版本时期的过渡方案,已不推荐使用了。

数据的恢复

在执行数据恢复前,如果操作的是生产环境,会有如下的建议:

使用 flush logs 命令,替换当前主库中正在使用的 binlog 文件,好处如下:

*   可将误删操作,定位在一个 BINLOG 文件中,便于之后的数据分析和恢复。
*   避免操作正在被使用的 BINLOG 文件,防止发生意外情况。

数据的恢复不要在生产库中执行,先在临时库恢复,确认无误后,再倒回生产库。防止对数据的二次伤害。

通常来说,恢复主要有两个步骤:

  1. 在临时库中,恢复定期执行的全量备份数据。
  2. 然后基于全量备份的数据点,通过 BINLOG 来恢复误操作和正常的数据。

MySQL 5.7 - 通过 BINLOG 恢复数据
https://www.cnblogs.com/michael9/p/11923483.html

从MySQL binlog解析出你要的SQL
https://github.com/danfengcao/binlog2sql

MyFlash——美团点评的开源MySQL闪回工具
https://tech.meituan.com/2017/11/17/mysql-flashback.html

MySQL Flashback 闪回功能详解
https://www.cnblogs.com/waynechou/p/mysql_flashback_intro.html



喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.kler.cn/a/465373.html

相关文章:

  • 《代码随想录》Day25打卡!
  • C++语言编程————C++的输入与输出
  • GitHub Fork 和 Clone 的深度指南:操作解析与 Pull Request 完整流程20241231
  • React 中结合 antd 的 Input 组件实现防抖输入
  • 组会 | DenseNet
  • [Qt] Qt介绍 | 搭建SDK
  • 解决Docker国内网络问题
  • Yeelight易来与Control4达成战略合作,开启智能家居全球战略新篇
  • Servlet中配置和使用过滤器
  • 《Vue3实战教程》40:Vue3安全
  • k8s启动报错
  • 华为仓颉编程语言与医疗领域的深度融合:技术与实践
  • android studio android sdk下载地址
  • matlab 实现了一个基于阵列信号处理的空间角和极化参数估计系统
  • 【2024年-8月-29日-开源社区openEuler实践记录】A - Ops:智能运维新时代的开源利器
  • Linux centos7 docker安装 (yum快速安装)
  • 深入剖析 Java HashMap
  • 跟着逻辑先生学习FPGA-实战篇第二课 6-2 LED灯流水灯实验
  • 为什么最好吧css的link标签放在head之间?
  • java进阶:seata分布式事务未生效问题排查纪实|主事务回滚成功,分支事务未回滚
  • C# 设计模式(创建型模式):建造者模式
  • RSA e与phi不互质(AMM算法进行有限域开根)
  • PostgreSQL的备份方式
  • Ubuntu 系统配置指南:Fcitx5 输入法与 KDE 桌面环境安装教程
  • mac m2 安装 docker
  • SQL-leetcode-197. 上升的温度