MySql 数据回溯

news/2025/1/22 10:10:38/文章来源:https://www.cnblogs.com/TMesh/p/18685146

目录
  • mysqlbinlog
  • binlog 相关 sql
  • 通过该命令将 binlog 转成可读的文本文件

mysqlbinlog

Binlog 是 mysql 用来记录数据变化的日志。通过 binlog 我们可以恢复数据,也可以跟踪数据的修改记录。Binlog 有三种模式:

  1. Statement Level 模式: 每一条修改数据的 sql 记录到 binlog 中
    日志量少,但遇到 sql 中使用 now() 等 sql 函数,恢复数据时导致数据的不一致性
  2. Row Level模式:修改后的每一条数据记录到 binlog 中
    日志量大,但不会有数据不一致问题
  3. 混合模式:前面两种模式优点的混合,根据 sql 的特点决定 Statement Level 模式或者 Row Level 模式。
    了解 binlog 后,针对上面问题我们可以通过 binlog 确定数据是否是修改后又被修改回原来的值。

binlog 相关 sql

flush logs;                             // 产生一个新的日志文件
show variables like 'log_bin_basename';	// 查看日志存储地址
show binary logs;		                // 查看所有的binlog信息
show master status;	                    // 查看最新日志文件名称
show binlog events in 'binlog.000008';	// 查看制定的binlog日志记录

通过该命令将 binlog 转成可读的文本文件

mysqlbinlog -vv --base64-output=decode-rows mysql-bin.000019 > mysql-bin.000019.txt

通过 grep 查找我们关心的数据,表名是需要查询表的名称,5575 是我的 id 字段,更新操作是根据 id 执行的

cat mysql-bin.002997.txt |grep -C 10 'UPDATE.*表名' | grep -C 10 '5575'

可以看到开始位置为 Pos,结束位置为 End_log_pos,接着用 mysqlbinlog 命令恢复

mysqlbinlog --no-defaults binlog.000008 --start-position=Pos --stop-position=End_log_pos  | mysql -uroot -p123456 test

查询某个表特定时间的 binlog 日志

mysqlbinlog --start-datetime='2020-06-12 00:00:00' --stop-datetime='2020-06-12 17:54:49' /path/mysql-bin.00002 |grep 'receipt_list' >>/path/binlog20200612.sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873139.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

镜像源网址

地址 https://mirrors.ustc.edu.cn/repogen/ 按需选择

飞驰云联连续4年入选“江苏省软件企业核心竞争力企业”!

近日,2024中国(南京)软件产业博览会开幕式暨第六届江苏软件产业发展大会”在南京成功召开。省工信厅、长三角地区省市产业主管部门负责人、省内各市工信部门负责人,省人工智能学会、江苏软件产业人才发展基金会、省内各市软协相关负责人,以及省软协七届理事会成员、省内重…

《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压

周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1PrwmeMEm2/目录: 1、VSCode正式支持Matlab调试 2、DIY录音室级麦克风,20美元成本实现500美元产品效果 3、开源流…

Ai 2024 Mac矢量图形设计

Ai 2024 Mac矢量图形设计 Adobe illustrator,也被称为“AI”,是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软,具有直观的界面和强大的功能。它可以帮助用户轻松创建高质量的矢量图形和排版设计,包括标志、图标、插图、包装设计等。同时,Ai 2024支持导入和导出…

犀牛Rhino 3D建模

犀牛Rhino 3D建模 Rhino 8是一款功能强大的三维构建软件,它可以帮助用户创建各种类型的3D模型,包括产品设计、建筑设计、工业设计计划等。具有直观的界面和丰富的工具库,让你可以快速轻松地进行建模、编辑、分析和漂染。支持多种文件格式的导入和导出,包括STL、STEP、IGES等…

zlibrary入口网站/最新官方国内可用地址/镜像网址

Z-Library(简称Z-Lib)是全球最大的免费在线图书馆,分享各种电子书的下载。无论是各类电子书,还是期刊文章都可以在上面免费的获取,绝对称得上是「海量」书籍和文献。用户可在上面下载期刊、文章以及各类书籍,其共收录了超过 1000w 本书籍和 8000w 篇文章。因为版权问题,…

【推荐】一款前后端分离的开源免费ERP进销存管理系统

项目介绍 盒木ERP社区版是一款开源的ERP进销存管理系统,采用前后端分离的设计架构。系统支持PDA移动端扫码操作,方便仓库管理和库存盘点。 ERP系统作用 ERP系统在企业中的作用是多方面的,它不仅能够提高企业的运营效率和管理水平,还能够帮助企业降低成本、提高客户满意度和…

4. 使用sql查询excel内容

1. 简介 我们在前面的文章中提到了calcite支持csv和json文件的数据源适配, 其实就是将文件解析成表然后以文件夹为schema, 然后将生成的schema注册到RootSehema(RootSchema是所有数据源schema的parent,多个不同数据源schema可以挂在同一个RootSchema下)下, 最终使用calcite的特…

【前端开发】HTML、CSS快速入门

HTML介绍 HTML 是用来描述网页的一种语言,即:超文本标记语言:(HyperText Markup Language) 超文本标记语言(HTML)是构建和呈现网页内容的标准标记语言。 HTML起源与发展 HTML的最初版本非常简单,只能创建静态文档,内容无法交互。随着时间的推移,HTML逐渐融入更多的技术…

VMware VeloCloud SD-WAN 6.2 发布 - 领先的 SD-WAN 解决方案

VMware VeloCloud SD-WAN 6.2 发布 - 领先的 SD-WAN 解决方案VMware VeloCloud SD-WAN 6.2 发布 - 领先的 SD-WAN 解决方案 VMware VeloCloud SD-WAN, Software-Defined WAN 请访问原文链接:https://sysin.org/blog/vmware-sd-wan-6/ 查看最新版。原创作品,转载请保留出处。 …

VSCode设置python文件模板,自动添加文件头注释

1.背景 每次写python代码的时候,都要手动在文件开头加上python解释器路径,文件编码,作者,日期等一堆信息,感觉非常麻烦。作为一个程序员,要学会偷懒。2.环境信息 Windows10 64位操作系统 VSCode 1.96.4 3.如何设置代码模板 避免每次新建项目文件时添加注释文件名、作者、…