mysql binlog常用脚本(解析与反解析)
解析binlog
方法1:mysqlbinlog
mysqlbinlog --no-defaults --base64-output=decode-rows -vv --database=dboop --start-datetime='2020-10-11 00:00:00' --stop-datetime='2020-10-11 15:00:00' mysql-bin.000075 >75.sql
常用参数
database:只列出该数据库下的binlog数据,但无法过滤由触发器执行的SQL。
base64-output=decode-rows -vv:显示具体 SQL 语句。
skip-gtids=true:忽略 GTID 显示。
- 输出结果
# at 20001
#201011 12:04:09 server id 1 end_log_pos 20094 CRC32 0x2b305ac Query thread_id=53 exec_time=0 error_code=0
SET TIMESTAMP=1651011012/*!*/;
BEGIN
/*!*/;
上面输出包括信息:
- position: 位于文件中的位置,即第一行的(# at 20001),说明该事件记录从文件第20001个字节开始
- timestamp: 事件发生的时间戳,即第二行的(#201011 12:04:09)
- server id: 服务器标识(1)
- end_log_pos 表示下一个事件开始的位置(即当前事件的结束位置+1)
- thread_id: 执行该事件的线程id (thread_id=53)
- exec_time: 事件执行的花费时间
- error_code: 错误码,0意味着没有发生错误
- type:事件类型Query
方法2:my2sql
wget https://www.dboop.com/download/my2sqlv2 /data/my2sql/my2sqlv2 -user root -password 123456 -host 10.0.0.2 -port 3306 -databases dboop -tables test001 -mode repl -work-type 2sql -start-file mysql-bin.000075 -start-datetime "2020-10-11 15:00:00" -stop-datetime "2020-10-11 15:20:00" -output-dir /data/my2sql/dbooptest/
方法3:my2sql
git clone https://github.com/liuhr/my2sql.git
cd my2sql/
go build .
./my2sql -user root -password 123456 -port 3306 \ -host 127.0.0.1 -databases testdb -tables student \ -work-type 2sql -start-file mysql-bin.000047 \ -start-datetime "2020-07-18 12:35:00" --stop-datetime "2020-07-18 12:43:00" \ -output-dir tmpdir/
反解binlog(误删数据)
git clone https://github.com/liuhr/my2sql.git
cd my2sql/
go build .
./my2sql -user root -password YZ_psbc521 -port 3347 -host 127.0.0.1 -databases testdb -tables student -work-type rollback -start-file mysql-bin.000024 -start-datetime "2024-03-22 14:28:00" --stop-datetime "2024-03-22 14:38:00" -output-dir tmpdir/
反解binlog(误删数据)
- 方法1:my2sql
wget https://www.dboop.com/download/my2sqlv2 /data/my2sql/my2sqlv2 -user root -password 123456 -host 10.0.02 -port 3306 -databases dboop -tables test001 -mode repl -work-type rollback -start-file mysql-bin.000075 -start-datetime "2020-10-11 15:00:00" -stop-datetime "2020-10-11 15:20:00" -output-dir /data/my2sql/dbooptest/ -work-type 2sql
分析主从延时、大事务、长事务
git clone https://github.com/liuhr/my2sql.git
cd my2sql/
go build .
./my2sql -user root -password 123456 -port 3306 \ -databases testdb -tables student \ -big-trx-row-limit 500 -long-trx-seconds 300 \ -work-type stats -start-file mysql-bin.000045 \ -start-datetime "2020-07-18 11:40:00" --stop-datetime "2020-07-18 12:00:00" \ -output-dir tmpdir/
本文来自博客园,作者:蚌壳里夜有多长,转载请注明原文链接:https://www.cnblogs.com/dbahrz/p/17814309.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)