技术分享 | my2sql 与 binlog2sql 解析效率 battle

本文对比了my2sql与binlog2sql两款MySQL binlog解析工具的性能和功能,通过实测发现my2sql在解析效率上明显优于binlog2sql,并且还具备解析大事务和生成DML统计信息的能力。

作者:杨彩琳

爱可生华东交付部DBA,主要负责MySQL日常问题处理及DMP产品支持。爱好跳舞,追剧。

本文来源:原创投稿

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


前言

**大家在平时运维过程中应该都了解过或者使用过一些 binlog 解析工具,比如今天要介绍的 my2sql 和 binlog2sql 。**my2sql 是基于 my2fback 、binlog_rollback 工具二次开发而来的(go语言),binlog2sql 是 python 语言开发的 mysql binlog 解析工具,两者都可以通过解析 binlog 文件,生成原始 SQL ,回滚SQL ,去除主键的 insert sql 等,然后实现数据快速闪回,主从切换后的数据补偿等功能。

既然两个工具都可以实现解析 binlog 的功能,那么它们两个之间我们该如何来抉择呢?请跟随小编往下看“my2sql与binlog2sql之间的battle”吧。

主要参数简介【这里只罗列了几个常用的参数,有其他需求的参数可进入链接中查看】

my2sql

参数 参数解释
-mode repl:伪装成从库从主库获取 binlog 文件;file:从本地文件系统获取 binlog 文件,默认repl
-local-binlog-file 当指定 当指定-mode=file参数时,需要指定 -local-binlog-file binlog 文件相对路径或绝对路径
-sql 要解析的 sql 类型,可选参数 insert ,update ,delete ,默认全部解析
-file-per-table 为每个表生成一个 sql 文件
-output-dir 将生成的结果存放到指定目录
-threads 线程数,默认2个,支持并发
-work-type 2sql:生成原始 sql ,rollback :生成回滚 sql ,stats:只统计 DML 、事务信息

binlog2sql

参数 参数解释
–stop-never 持续解析 binlog ,默认 false ,同步至执行命令的最新 binlog 位置
-B,–flashback 生成回滚 sql ,可解析大文件,不受内存限制,默认 false ,与 stop-never 或 no-primary-key 不能同时添加
–start-file 起始解析文件,只需文件名,无需全路径
–start-position/–start-pos 起始解析位置。默认为 start-file 的起始位置。
–stop-file/–end-file 终止解析文件。默认为 start-file 同一个文件。若解析模式为 stop-never ,此选项失效。
–stop-position/–end-pos 终止解析位置。可选。默认为 stop-file 的最末位置;若解析模式为 stop-never ,此选项失效。
–sql-type 只解析指定类型,支持 INSERT ,UPDATE ,DELETE 。多个类型用空格隔开,如–sql-type INSERT DELETE 。默认为增删改都解析。用了此参数但没填任何类型,则三者都不解析。

battle 之标准 sql 解析【解析2G大小的同一binlog文件】

环境准备:
## 查看mysql的相关参数设置
mysql> select @@server_id,@@binlog_format,@@binlog_row_image,@@max_binlog_size,@@log_bin_basename;
+-------------+-----------------+--------------------+-------------------+-----------------------------------+
| @@se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值