技术分享 | MySQL binlog 日志解析

MySQL二进制日志(binlog)解析工具 binlog2parser.py是一款MySQL二进制日志(binlog)解析工具,支持mysql5.6/5.7。- binlog2parser.json文件配置日志文件对应的数据库连接信息,用于解析列名。- 支持日期、POS点、库、表过滤,SQL类型进行过滤。- 通过binlog文件生成DML语句。- 通过binlog文件生成回滚语句。 阅读详情

作者:xuty
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。

一 、binlog 简介

binlog 是 MySQL Server 层记录的二进制日志文件,用于记录 MySQL 的数据更新或者潜在更新(比如 DELETE 语句执行删除而实际并没有符合条件的数据),select 或 show 等不会修改数据的操作则不会记录在 binlog 中。通常在 binlog_format = ROW 的环境下,我们可以通过 binlog 获取历史的 SQL 执行记录,前提是必须开启 binlog_rows_query_log_events 参数(默认关闭,建议开启),该参数可以通过rows_query_event 事件记录原始的 SQL,如果不开启的话,则只能获取 SQL 对应的行数据。

二、binlog 解析

由于 binlog 是二进制文件,所以无法直接使用文本打开,需要使用对应的解析工具才可以查看具体内容。

2.1 show binlog events

show binlog events 方式可以解析指定 binlog 日志,但不适宜提取大量日志,速度很慢,不建议使用。

2.2 mysqlbinlog

mysqlbinlog 是 mysql 原生自带的 binlog 解析工具,速度快而且可以配合管道命令过滤数据,适合解析大量 binlog 文件,建议使用。

由于 windows 下面无法使用管道命令如此简洁的提取出 SQL,所以这边就只写 Linux 下的使用方法。我平时的做法会将 windows 下面的 binlog 拷贝到 Linux 下,再利用 Linux 的管道命令解析。
个人常用的 Linux 下解析命令:mysqlbinlog /data/mysql_data/bin.000008 --database EpointFrame --base64-output=decode-rows -vv --skip-gtids=true |grep -C 1 -i “delete from Audit_Orga_Specialtype” > /opt/sql.log

  • /data/mysql_data/bin.000008:需要解析的 binlog 日志。

  • database:只列出该数据库下的行数据,但无法过滤 Rows_query_event。

  • base64-output=decode-rows -vv:显示具体 SQL 语句。

  • skip-gtids=true:忽略 GTID 显示。

  • grep -C 1 -i “delete from dataex_trigger_record”:通过管道命令筛选出所需 SQL 及执行时间。

  • /opt/sql.log:将结果导入到日志文件,方便查看。

结果示例:

小贴士:

1. 如果不确定 SQL 格式或是无法筛选到数据,比如因为 delete from 中间冷不丁多一个空格出来,可以使用 grep 多次过滤筛选,比如 **grep -C 1 -i “Rows_query” |grep -C 1 -i “Audit_Orga_Specialtype” |grep -C 1 -i “delete” **筛选对应表上的 delete 操作。

2. 触发器执行的 SQL 不会记录在 Rows_query_event 中,只会记录对应的行数据。

  1. –database 是无法过滤 Rows_query_event 的,只可以过滤行数据。
三、解析方式对比

对于常见的数据库(SQL Server、Oracle、MySQL)来说,都具有类似相同的日志来记录历史 SQL,不同的只是日志的记录方式和解析方法:

基于Android13的系统启动流程分析(三)之FirstStageMain阶段 init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等。init进程是由多个源文件共同组成的,这些文件位于源码目录system/core/init1. Bootloader 引导当按下设备电源键时,最先运行的就是 bootloader(固化在ROM的程序),bootloader 的主要作用就是硬件设备(如 CPU、flash、内存)的初始化并加载到RAM,通过建立内存空间映射,为装载 Linux 内核做好准备,。 阅读详情

相关推荐

关于卷积过程中通道数如何变化问题

对卷积操作前后通道数问题进行解释,输出通道数=卷积核的个数。

你好,明天,,的博客 4315

MySQL Binlog 解析工具 Maxwell 详解

Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它的常见应用场景有ETL、维护缓存、收集表级别的dml指标、增量到搜索引擎、数据分区迁移、切库binlog回滚方案等。maxwell相对于canal的优势是使用简单,它直接将数据变更输出为json字符串,不需要再编写客户端。注意:后台运行参数 --daemon。

weixin_45526912的博客 2196

【SerDes】美信GMSL2-CSI调试心得

美信GMSL2加解串器芯片家族广泛应用于车载和工业视觉系统。文章介绍了MAX96717/MAX96717F加串器和MAX96724/MAX96724R解串器的关键特性,包括支持MIPI CSI-2接口、6Gbps传输速率等功能。提供了基于高通平台的demo系统配置和调试步骤,重点阐述了Link Lock、PCLK检测和Video Lock等关键调试环节,并详细说明了像素模式,隧道模式的工作原理及寄存器配置示例。文中还包含通过I2C读写寄存器的具体操作指令,取流freeze可能原因和解决方法。

qq_38089448的博客 2487

接着说说mysqlbinlog解析工具如何做数据恢复

接着说说mysqlbinlog解析工具如何做数据恢复

SUOYUEのBLOG 1150

【3d打印】基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置

基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置(启庞Kp3s V1)

共享IT之美,共创机器未来 3189

【PyTorch版本兼容性指南】如何在不同版本中正确使用torch.nn.attention

本文详细解析了PyTorch版本兼容性问题,特别是torch.nn.attention模块在不同版本中的使用差异。针对常见的ModuleNotFoundError错误,提供了三种实用解决方案:升级PyTorch版本、使用自定义实现和源码移植方案,并分享了最佳实践建议,帮助开发者有效避免兼容性问题。

weixin_29084231的博客 471

技术分享 | MySQL binlog 分析工具 analysis_binlog 的使用介绍

作者:莫善 某互联网公司资深 DBA。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 目 录 一、概述 二、环境信息 三、环境准备 1、centos1 2、centos2 3、centos3 四、测试 1、准备数据 2、flush binlog 3、MySQL 压测 4、解析 binlog 五、总结 一、概述 作为一个 MySQL DBA,查看分析 binlog 是日常工作的一部分。 不知道你是否遇到过这样的需求:一个时间段,各个表的 dml 统计.

ActionTech的博客 2207

VisualSFM+MeshLab 三维重建全过程记录

VisualSFM+MeshLab 三维重建全过程记录,从下载到运行出结果,以及其中一些可能出现的小问题。通过这两个软件熟悉一下多目立体视觉重建的流程。

何似莫相逢 3万+

MySQL binlog 解析工具整理

工具 | 类型 | 实时 | 可编程 | 输出格式 | 优势 | 典型用途 || 官方工具 | ❌ | ❌ | 文本 | 权威简单 | 调试、验证 position |binlog2sql| Python 工具 | ❌ | ✅ | SQL | 回放、审计 | 数据回滚、离线解析 |Canal| 框架 | ✅ | ✅ | JSON / RowData | 成熟稳健 | 实时同步 Doris / ES |Maxwell。

学亮编程手记 1762

CAD二次开发c# .net加载cui\cuix菜单文件

public static void LoadMyCui(string cuiFile) { Document doc = Application.DocumentManager.MdiActiveDocument; object oldCmdEcho = Application.GetSystemVariable("CMDECHO"); object oldFileDia = Application.GetSys..

2127

【ARM Trace32(劳特巴赫) 使用介绍 13 -- Trace32 Var 变量篇】

例如我们已经知道一个符号(可能是变量或者函数)的地址,怎么确定这个地址是一个变量还是一个函数呢?如果是变量的话,变量名是啥?变量定义的位置在哪?如果是函数,函数名是啥?函数定义的位置又在哪呢?查看结构体变量 str_t32 的值。例如我们已经知道了一个符号的地址为。在map文件中的地址为。

CodingCos的博客 2349

mysql binlog 指定表_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog是...

weixin_39788256的博客 3228

stm32项目实战(1)光敏电阻的介绍和使用

文章目录前言一、光敏电阻介绍二、cubeMX配置三、代码说明总结 前言 本篇文章我们讲带大家了解光敏电阻的使用 一、光敏电阻介绍 下面是4线光敏电阻实物图 产品接线说明: 1、VCC 接电源正极 3.3-5V 2、GND 接电源负极 3、DO TTL 开关信号输出 (配置为输出模式) 4、AO 模拟信号输出(ADC采样通道) 光敏电阻主要用于检测周围的光照强度,光照强度发生变化那么ADC采样的值也会发送变化。 二、cubeMX配置 简单的配置我们就不多说了主要是ADC采样的配置 这里我采用的是ADC1通道

m0_49476241的博客 1万+

mysql binlog 分析_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog是...

weixin_36338808的博客 984

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

mysql binlog select_技术分享 | MySQL binlog 日志解析

一 、binlog 简介binlog是 MySQL Server 层记录的二进制日志文件,用于记录 MySQL 的数据更新或者潜在更新(比如 DELETE 语句执行删除而实际并没有符合条件的数据),select 或 show等不会修改数据的操作则不会记录在 binlog 中。通常在binlog_format = ROW的环境下,我们可以通过 binlog 获取历史的 SQL 执行记录,前提...

weixin_39645019的博客 1343

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mysql binlog grep_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。----很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binl...

weixin_30497687的博客 272

mysql binlog 协议_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog是...

weixin_29198045的博客 135

mysql binlog server_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog是 ...

weixin_35284593的博客 271

oracle 解析bin log,关于binlog:技术分享-MySQL-binlog-日志解析

作者:xuty本文起源:原创投稿*爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。很多时候,当咱们的业务数据产生了不失常的变动,但却无奈得悉这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费劲。那么就须要通过剖析数据库日志来失去历史执行 SQL,依据 SQL 执行逻辑来确认代码地位,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog是...

weixin_35224206的博客 3851

解析mysqlbinlog日志_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog 是...

weixin_33014843的博客 152

mysql binlog协议详解_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog 是...

weixin_39923110的博客 180

mysqlbinlog工具_技术分享 | MySQL binlog 日志解析

作者:xuty很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog 是 MySQL Server 层记录的二进制日志文件,用于记录 MySQL 的数据更新或者潜在更新...

weixin_39550410的博客 307

订阅mysql的二进制日志_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。----很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binl...

weixin_39647499的博客 221

db2关闭下一句sql的日志_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog是 ...

weixin_32897341的博客 208

log解析工具 px4_技术分享 | MySQL binlog 日志解析

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 SQL,根据 SQL 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。一 、binlog 简介binlog 是...

weixin_35992880的博客 233
上一篇: 技术分享 | 怎么找到上锁的 SQL 语句
下一篇: 新特性解读 | GROUPING() 函数用法解析
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值