可以同时解析多个binlog吗

mysql_binlog格式分析,快速了解binlog日志格式 mysql binlog 日志解析及分析流程在mysql中,binlog记录了所有记录操作(insert,update,delete)当然也包括表变更等操作本篇文章将详细讲解binlog格式以及常见的问题,为广大道友快速入门!以下流程执行环境为:mysql8。 阅读详情
  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。
  • 作者: 叶金荣
  • 文章来源:GreatSQL社区原创

1.可以同时解析多个binlog吗 2.innodb_buffer_pool_instances设置多少合适

首先,答案是肯定的。

其次,当我们采用这种方式解析binlog时 $ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=2000 binlog.000001 binlog.000002 时,它的工作方式是这样的:

  • 指定binlog停止位置的参数,只对最后一个binlog 文件生效(指定开始位置则针对第一个文件生效);
  • 前面的binlog文件则是全量解析;
  • 如果没有匹配的 stop-position,则向上取值最接近的position;
  • 如果同时多次指定 start-position 或 stop-position,则以最后一次指定的为准;
  • 如果指定的 stop-position 超出binlog的最大范围,则会发出WARN;
  • 如果 stop-position 指向的最后一个event是 table_map,也会发出WARN。

我们分别举几个例子看下:a.解析多个文件,但每次指定顺序不同

$ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=1500 mgr01.001205 mgr01.001206 mgr01.001207 > /tmp/b1
$ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=1500 mgr01.001206 mgr01.001205 mgr01.001207 > /tmp/b2
$ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=1500 mgr01.001207 mgr01.001206 mgr01.001205 > /tmp/b3

$ ls -la /tmp/b*
-rw-r--r-- 1 root root 5027246 Oct 30 19:36 /tmp/b1
-rw-r--r-- 1 root root 5027246 Oct 30 19:21 /tmp/b2
-rw-r--r-- 1 root root 3126107 Oct 30 19:22 /tmp/b3

# 虽然 /tmp/b1、/tmp/b2文件大小看起来一样,但其MD5SUM是不同的
$ md5sum /tmp/b*
ac8e223d417310e02366d5cbfcb4a882  /tmp/b1
6a09fddd30ab210f3370613aff85571c  /tmp/b2
9e2e70e1cee5fb10860c66c2ef770c0a  /tmp/b3

b.指定stop-position,但实际会向上取值

$ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=1500 mgr01.001205 mgr01.001206 mgr01.001207 > /tmp/b1

# 查看文本格式的binlog,发现end_log_pos最大值超过了1500
$ grep end_log_pos /tmp/b1 | tail
...
#221030 19:17:12 server id 3306  end_log_pos 1208 CRC32 0x8e5ca346      Table_map: `sbtest`.`sbtest5` mapped to number 926
#221030 19:17:12 server id 3306  end_log_pos 1624 CRC32 0x0059617f      Update_rows: table id 926 flags: STMT_END_F

c.指定stop-position对应的是table_map event,会发出WARN

$ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=1208 mgr01.001205

WARNING: The range of printed events ends with a row event or a table map event that does not have the STMT_END_F flag set. This might be because the last statement was not fully written to the log, or because you are using a --stop-position or --stop-datetime that refers to an event in the middle of a statement. The event(s) from the partial statement have not been written to output.
#221030 19:17:12 server id 3306  end_log_pos 1141 CRC32 0x5226ecd8      Rows_query
# UPDATE sbtest7 SET c='85585077000-51806678786-29036174562-00737528630-90333366602-59672213053-90973506235-01305133574-41639459483-63273277428' WHERE id=83642
# at 1141
#221030 19:17:12 server id 3306  end_log_pos 1208 CRC32 0x96186542      Table_map: `sbtest`.`sbtest7` mapped to number 928
ROLLBACK /* added by mysqlbinlog */ /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

更多的规则自己摸索吧 :)

innodb_buffer_pool_instances设置多少合适

将innodb buffer pool拆分成多个instance,每个instance有独立的free lists、flush lists、LRU list,也有独立的mutex,有助于提升InnoDB并发性能。

当 innodb_buffer_pool_size 小于1GB时,innodb_buffer_pool_instances 默认值为1。反之,则默认值为8。

instance的设置尽量符合几个原则:

  • 首先,innodb_buffer_pool_size 大于1GB时,设置多个instance才有意义;
  • 拆分后,每个instance也尽量大于1GB;
  • 拆分后,每个instance必须是128MB(innodb_buffer_pool_chunk_size定义的值)的整数倍。

Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html

image-20230105161905827

6440

window下MySQL 8.0版本 binlog2sql 解析binlog mysql server必须开启,离线模式下不能解析参数 binlog_row_image 必须为FULL,暂不支持MINIMAL解析速度不如mysqlbinlog。 阅读详情

相关推荐

binlog解析技巧

MySQL binlog解析技巧

easydb.net 3180

MySQL中binlog过多的正确处理方式

MySQL读写量很大,导致了binlog日志量也很大,本来服务器专门用来做数据库服务器的,空间也是分到了2个T,最近发现服务器空间越来越小,于是排查到了是MySQL的数据路径下产生了太多太多的binlog文件,于是总结了此篇文章,正确处理正式环境binlog文件过多导致服务器空间不够的方式。

qq_36803154的博客 7484

Debezium+Flink+Hudi实时处理MySQ的Binlog日志

为了同时满足大数据量和高时效性的双重要求,实时数仓和在线交互式(ad-hoc)分析技术,及相应的基础组件应运而生,并快速发展。其中包括通用计算引擎(如Spark和Flink),交互式分析系统(如Presto,Druid和ClickHouse),数据湖框架(如Iceberg,Hudi和Delta Lake),和底层存储(如Ozone)。 Debezium 概念:Debezium是一个开源的分布式平台,是一个 CDC(Changelog Data Capture,变更数据捕获)的工具,可以把来自 MySQL、P

JustinMars的博客 783

mysql binlog基础知识

binlog基本操作

ApexPredator的博客 411

MySQL存储引擎如何完成一条更新语句的执行:揭秘数据库背后的“魔术师”

MySQL更新语句的执行流程解析:一条简单的UPDATE背后涉及连接器、分析器、优化器、执行器的协同工作,以及Buffer Pool、Redo Log、Binlog等核心机制。本文详细剖析了从连接建立到事务提交的完整流程,包括权限验证、SQL解析、索引优化、日志记录、两阶段提交等关键环节,揭示了MySQL如何通过Redo Log(物理日志)和Binlog(逻辑日志)保障数据一致性与持久性,并给出了性能优化建议。通过代码级解析和电商秒杀案例,展示了InnoDB引擎更新操作的核心实现原理及优化技巧。

墨夶的博客 582

【保研经验】北科自动化到北大工学院

作者:办公室某学长 谢邀。。。作为拖延症晚期患者,希望能在我科开学前写完。 先简单介绍一下我的保研过程,申请了清华叉院&北大叉院大数据&北大信科计算机夏令营,三者都没入营;申请了自所夏令营(自所来宣讲时未交简历,这是重大错误),给了第二批补录但没去;最终九推去了北大工学院。我的这次保研最终成功的经历可以说有一定运气成分,不具有普适性,但在前期准备过程中还是有经验可以分享的。 ...

ruanjianbu的博客 1796

mysql 使用binlog 恢复处理,mysqlbinlog 指定多文件

mysql binlog恢复到:2023-02-23 00:00:00 至 2023-04-05 00:00:00。mysqlbinlog 指定多文件用*即可;

hezhenfei8的专栏 531

《缠中说禅108课》5:市场无须分析,只要看和干

喜欢吹牛皮的,在市场里最常见,例如一种以分析市场、吹牛皮为生的职业,叫什么股评、专家的。此类人不过是市场上的寄生虫,真正的猎手只会观察、操作,用嘴是打不了豺狼的。 市场就是一个狩猎场,首先你要成为一个好猎手,而一个猎手,首先要习惯于无言。如果真有什么真理,那真理也是无言的。可言说的,都不过是人类思想的分泌物,臭气熏天。真不可言说了,就无不可言,言而无言,是乃真言。 一个好的猎手,可以没有嘴巴,但一定会有一双不为外物所动的眼睛,在这眼睛下,一切如幻化般透明。要不被外物所动,则首先要不被自我所迷惑,其实..

BenRen1314的博客 801

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

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

ActionTech的博客 2208

WinCC动态选择报警记录案例

本例中需要确认查询的时间段以及查询的关键字,然后通过一个按钮来执行报警数据查询脚本,并把查询出的结果加载到当前报警控件中。<本例中数据查询脚本的思路是根据选项组所选定的参数加载相应的归档变量到在线趋势控件,根据设定的查询时间范围设定控件时间轴的开始时间及结束时间。本文以 WinCC V8.0为例,介绍如何动态的查询WinCC报警记录,包括关键字查询/时间&关键字查询,如图1所示。<在WinCC变量管理中创建不同的变量组,并在变量组下创建相应的变量,如图2 所示(下图并非实际变量值)。

weixin_45072604的博客 2709

从零搭建高通8255车载开发环境:QNX SDP、SDK配置与镜像编译全流程

本文详细介绍了如何从零搭建高通SA8255P车载开发环境,涵盖QNX SDP部署、SDK工具链配置到多系统镜像编译的全流程。特别针对SAIL安全岛镜像构建、QNX系统优化及Android系统资源分配等关键技术点提供实战指导,帮助开发团队高效完成车载系统开发与调试。

weixin_33582311的博客 364

技术分享丨 关于MySQL binlog解析那些事

高效解析 binlog

GreatDB的博客 720

银河麒麟V10SP1实战:5步搞定AD域登录(附Samba+Winbind配置详解)

本文提供银河麒麟V10 SP1操作系统无缝集成Windows AD域的实战指南。文章深入解析了Samba、Winbind与Kerberos三大核心组件的协作原理,并详细阐述了从环境准备、软件包安装、配置文件定制到执行加域及排错的全流程。特别针对2403等新版本提供了关键配置差异与避坑要点,旨在帮助企业运维人员实现高效、稳定的域环境登录与管理。

weixin_29269441的博客 293

mysql binlog 同步组件_腾讯大牛教你ClickHouse实时同步MySQL数据

文章转载自 腾讯云数据库| 作者 史鹏宙,CSIG云与智慧产业事业群研发工程师ClickHouse作为OLAP分析引擎已经被广泛使用,数据的导入导出是用户面临的第一个问题。由于ClickHouse本身无法很好地支持单条大批量的写入,因此在实时同步数据方面需要借助其他服务协助。本文给出一种结合Canal+Kafka的方案,并且给出在多个MySQL实例分库分表的场景下,如何将多张MySQL数据表写入...

weixin_32233079的博客 1447

探索robotics-toolbox-python:从基础安装到高级机器人运动学应用

本文详细介绍了robotics-toolbox-python工具箱,从基础安装、环境配置到机器人运动学与动力学的核心应用。通过D-H参数、URDF导入和内置模型三种方式快速构建机器人模型,并演示了正逆运动学计算、关节空间与任务空间轨迹规划以及三维可视化仿真。该工具箱极大地简化了机器人算法开发流程,是进行机器人学研究和应用实践的强大工具。

i1j2k的博客 496

小程序数据采集(3):PC端微信小程序降维调试与流量数据获取详解

本文提出了一种针对PC端微信小程序的逆向分析方法,通过利用PC端基于Chromium架构的天然优势,实现无需Root的降维打击。文章详细介绍了如何开启CEF远程调试协议、基于DevTools Protocol实现流量劫持、对抗PC端安全防线以及获取小程序本地存储数据的技术方案。相比移动端严苛的环境,PC端小程序在调试接口、网络拦截和数据存储等方面存在显著漏洞,为爬虫开发提供了更便捷的突破口。

数据知道的博客 827

kafka里存的是mysql的binlog通过canal转存的Message,各位大佬有这个Message的解析方法

kafka里存的是mysql的binlog通过canal转存的Message,Message的解析方法保存方法 01-实时ETL开发之转换POJO【思路】 分析从Kafka消费数据(JSON转换MessageBean对象),哪些字段是关系值。 Canal采集MySQL数据库数据:12个字段 Canal采集数据,核心数据字段 Canal采集MySQL数据库数据时,业务中关心字段:与OGG采集数据关心字段基本一致 第一个字段:table,表的名称,对哪个表进行操作 第二个字段:type,数据操作

qq_43528451的博客 797

K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

🔴 K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3万+

图解MySQL | [原理解析] MySQL组提交(group commit)

原创作者:黄炎 王悦 周海鸣 引 言 本文是由爱可生研发团队出品的「图解MySQL」系列文章,不定期更新,但篇篇精品。 爱可生开源社区持续运营维护的小目标: 每周至少推送一篇高质量技术文章 每月研发团队发布开源组件新版 每年1024开源一...

chiweiliu4439的博客 295

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

mysqlbinlog恢复增量备份数据

如果mysql-server启用了--bin-log选项,那么mysql在运行的时候会把执行的事件(事务,sql语句)记录到二进制文件中,在my.cnf文件中--bin-log可以指定二进制文件存储的位置。而mysqlbinlog的用途是解析这些二进制文件,变成可读的文本文件。mysqlbinlog binlog_files | mysql -u root -p上面命令的意思是,mysqlbinlo

ziyao_zou的专栏 476

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

1236错误场景分析

1/背景 一个主实例下面挂了7个只读实例,其中6个只读实例在相同时间报错误,我们分析了6个报错只读实例,他们报错信息一样都是1236错误:Last_IO_Error: Got fatal error 1236 from master when reading data from binary log[此处省略,后面详细分析],也确认了其中1个没有报错的只读实例,下面分析这个错误的排...

482

MySQL数据库Binlog解析工具--binlog2sql

概述 作为DBA,binlog2sql是一项必须掌握的工具。binlog2sql是一个开源的Python开发的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,以便做数据恢复。 gihub:https://github.com/danfengcao/binlog2sql 一、闪回原理简析 开始之前,先说说闪回。我们都知道 MySQL binlog 以 event 为单位,记录数据库的变更信息,这些信息能够帮助我们重现这之间的所有变化,也就是所谓

淡定波的博客 7437

MySQL 数据”丢失”事件之 binlog 解析应用

本文是对 binlog 解析的一个实践案例,binlog 记录的信息非常多,可以对 binlog 进行不同维度的解析,同时binlog 在线上环境的配置使用上也有着一些技巧,如本案例中,线上环境因为是规范化部署,参数设置合理,不会由于单个 binlog 文件过大导致 binlog 解析时间过长,以及如参数的开启,使得在 row 模式下也可以明确记录下具体的 SQL语句。

Minxinbb 1323

数据库之binlog

原文参见。

blazercloud的博客 2879

Alibaba Canal调研报告

前述:Canal是纯Java语言开发,解析数据库增量日志,为目标端提供消费&订阅。源端仅仅支持MySQL , 目标端支持 Kafka,RocketMq,RabbitMq,MySQL,ES等。 原理:基于MySQL的主从复制,Canal 将自己伪装成MySQL slave,向MySQL master发送dump协议。Master收到后,会向slave (也就是Canal) 推送binary log。Canal解析binary log对象。提供消费和订阅 架构: ...

weixin_43626040的博客 2305
上一篇: MySQL8.0锁情况排查
下一篇: 图文结合带你搞懂MySQL日志之relay log(中继日志)
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值