binlog介绍

  1. binlog,即二进制日志,它记录了数据库上的所有改变.
  2. SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕.
  3. binlog格式
  • 基于语句,无法保证所有语句都在从库执行成功,比如update … limit 1;
  • 基于行,将每一次改动记为binlog中的一行.在执行一个特别复杂的update或者delete操作时,基于行的格式会有优势.

是否启用了日志
mysql>show variables like ‘log_bin’;

当前的日志
mysql> show master status;

看二进制日志文件用mysqlbinlog
shell>mysqlbinlog -v mail-bin.000001
或者shell>mysqlbinlog -v mail-bin.000001 | tail

binglog的类型

binlog的格式有三种,这也反应了mysql的复制技术:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。相应地,binlog的格式也有三种:STATEMENT,ROW,MIXED。

mysql>showvariables like ‘binlog_format’    #查看binlog的格式

mysqlbinlog 恢复

不同的mysql mysqlbinlog版本不一样,需要获取到进程自身的mysqlbinlog

  1. 只查看第一个binlog文件的内容
    show binlog events;
  2. 查看指定binlog文件的内容
    show binlog events in 'mysql-bin.000002';
  3. 查看当前正在写入的binlog文件(当前数据库使用的binlog)
    show master status;
  4. 获取binlog文件列表
    show binary logs;
  5. 查看所有binlog日志列表
    show master logs;
  6. 清空binlog日志文件
    reset master
  7. 刷新 log 日志,重新生成一个新编号的 binlog 日志文件
    flush logs;

导出 binlog

mysqlbinlog -v binlog.000003 > /home/ryan_binlog.sql

记得要加上 -v,不然导出时,无法看到修改的SQL语句,也就无法进行定位,

-v 选项可以从行事件中重建伪 SQL 语句。

导入 binlog,恢复数据

基于开始/结束时间

mysqlbinlog binlog.000003 --start-datetime=2021-01-20 10:00:00 --stop-datetime=2021-01-23 10:00:00 -v | mysql -uroot -p

基于 pos 位点

mysqlbinlog binlog.000003 --start-position=528 --stop-position=1778 -v | mysql -uroot -p

或者也可以使用下面的工具生成回滚 SQL 进行恢复:

https://github.com/zhengjianhong001/binlog2sql

https://dev.mysql.com/doc/internals/en/binary-log.htmlhttps://www.jianshu.com/p/c16686b35807http://www.ttlsa.com/mysql/super-useful-mysqlbinlog-command/

MySQL 误操作 数据恢复的更多相关文章

  1. MySQL 误操作后数据恢复(update,delete忘加where条件)【转】

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句 写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者 ...

  2. MySQL误操作后如何快速恢复数据

    基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...

  3. MySQL误操作删除后,怎么恢复数据?

    MySQL误操作删除后,怎么恢复数据?登陆查数据库mysql> select * from abc.stad;+----+-----------+| id | name |+----+----- ...

  4. MySQL 误操作后如何快速恢复数据~!~!~

    基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...

  5. MySQL误操作后如何快速回滚(转)

    本文转自http://www.cnblogs.com/dfcao/p/6147970.html#undefined 感谢作者 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,My ...

  6. MySQL误操作后如何快速恢复数据?

    摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如 ...

  7. MySQL 误操作后数据恢复(update,delete忘加where条件)

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...

  8. binlog2sql实现MySQL误操作的恢复

    对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的 ...

  9. mysql误操作后通过binlog恢复,同时解决tmp目录满的问题

    注意: 本文的恢复,并不是基于恢复某个时间点的全量备份后的增量恢复,而是指在现有数据库基础上基于binlog的恢复.适用于较小的数据误操作. 提取日志文件为sql语句: /usr-ext/local/ ...

  10. MySQL binlog2sql实现MySQL误操作的恢复

    对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的 ...

随机推荐

  1. Python操作LDAP,对用户进行认证(验证用户名以及密码)

    Python操作LDAP,对用户进行认证 1.环境 Python版本: 3.7.1 操作系统:windows 7 x64 第三方包:python-ldap 2.LDAP LDAP,它是基于X.500标 ...

  2. 揭秘如何用Monaco Editor打造功能强大的日志查看器

    Monaco Editor 是一个基于浏览器的代码编辑器,由 Microsoft 开发,是 Visual Studio Code 的核心编辑器组件.为用户提供了一个功能丰富.性能优异的代码编辑环境,常 ...

  3. GAMES101作业3

    作业要求: 作业效果: 我们需要做的: 在rasterizer.cpp中修改: 函数rasterize_triangle(const Triangle& t) //实现与作业 2 类似的插值算 ...

  4. AI应用实战课学习总结(10)用CNN做图像分类

    大家好,我是Edison. 最近入坑黄佳老师的<AI应用实战课>,记录下我的学习之旅,也算是总结回顾. 今天是我们的第10站,一起了解CNN卷积神经网络 以及 通过CNN做图像分类任务的案 ...

  5. 解密prompt系列56.Agent context Engineering - 单智能体代码剖析

    近期关于智能体设计有诸多观点,一个关键点让我豁然开朗--无论智能体是1个还是多个,是编排驱动还是自主决策,是静态预定义还是动态生成,Context上下文的管理机制始终是设计的核心命脉.它决定了:每个节 ...

  6. R语言dplyr包filter函数 Error in filter(., ) : 找不到对象的报错原因和解决办法

    报错描述 当我们想使用dplyr包中的 filter 函数对指定的dataframe进行如下的行筛选时,R报错Error in filter(., ) : 找不到对象X.stage_id.,提示我们没 ...

  7. vim卡死 转载

    博客园 玩了这么多年linux 居然不知道这个..特此记录. 使用vim时,如果你不小心按了 Ctrl + s后,你会发现不能输入任何东西了,像死掉了一般,其实vim并没有死掉,这时vim只是停止向终 ...

  8. leetcode 1556

    简介 简单题 思路:sprintf 将数字转为字符串,然后新建一个空的字符串然后将逆序统计是否可以被3整除添加0 感觉简单题做的也很慢 参考链接 https://github.com/haoel/le ...

  9. HF Papers 直播| AI for Science 专场

    AIGC热点大赛# 由 Hugging Face × OpenMMLab × ModelScope × 知乎 × 机智流等 联合发起的[AI Insight Talk]系列直播活动第三场即将开始! A ...

  10. Confidence First: Yale University's ideal of mind

    "客观规律"."科学"与"真理"无处不在,只待"有缘人". 艺术化形象化的通俗表达:"道物法术器"遇 ...