my2sql 安裝使用(回滾,分析大事務長事務)


官方github

https://github.com/liuhr/my2sql

 

1、安裝

本想用源碼安裝,但一直報錯,后來直接下載的二進制文件

wget https://raw.githubusercontent.com/liuhr/my2sql/master/releases/centOS_release_7.x/my2sql
chmod +x my2sql 


./my2sql

 

2、使用

語法和 binlog2sql 類似,不過有一些binlog2sql上的bug,在這個軟件中沒有。

比如timestamp(3)問題:

https://github.com/danfengcao/binlog2sql/issues/90

 

 

分析在線binlog,正向解析SQL

./my2sql -user root -password c123456 -host 127.0.0.1 -port 3357 -mode repl -work-type 2sql -start-file mysql-bin.000038 -start-datetime "2020-07-16 10:20:00" -output-dir ./tmpdir

 

 

分析在線binlog,生成回滾SQL

./my2sql -user root -password c123456 -host 127.0.0.1 -port 3357 -mode repl -work-type rollback -start-file mysql-bin.000038 -start-datetime "2020-07-16 10:20:00" -output-dir ./tmpdir

 

 

正向解析的SQL

root@ip-172-31-30-45:~/czg/tmpdir# cat forward.38.sql 
UPDATE `ceshi`.`t1` SET `sj`='2022-01-17 10:18:18.188' WHERE (`c1`='a' AND `c2`='b' AND `sj`='2022-01-17 09:41:22.451');
#解析的逆向SQL
root@ip-172-31-30-45:~/czg/tmpdir# cat rollback.38.sql 
UPDATE `ceshi`.`t1` SET `sj`='2022-01-17 09:41:22.451' WHERE (`c1`='a' AND `c2`='b' AND `sj`='2022-01-17 10:18:18.188');

 

 

分析已經離線binlog,生成回滾SQL

./my2sql -user root -password c123456 -host 127.0.0.1 -port 3357 -mode file -work-type 2sql -local-binlog-file /usr/local/mysql57/data/mysql-bin.000038 -start-file /usr/local/mysql57/data/mysql-bin.000038  -start-datetime "2020-07-16 10:20:00" -output-dir ./tmpdir

 

 

解析時由於binlog內部的開始時間與結束時間采的是操作系統時區,

而binlog內容的timestamp類型存儲的是UTC時間戳,在解析binlog時間范圍,及binlog內容解析出來后,總會有與北京時間差8小的時問題,

用 -tl 參數可以解決這個問題,查詢binlog的時間及生成的SQL都會是北京時間。

 

 ./my2sql -user root -password 123456 -host 127.0.0.1 -port 3306 -mode repl -work-type rollback -start-file mysql-bin.000008 -databases ceshi -tables t1 -start-datetime "2022-10-18 15:42:53" -stop-datetime "2022-10-18 15:45:00" -tl "Asia/Shanghai" -full-columns -output-dir ./tmpdir1

 

分析大事務、長事務:

統計時間范圍各個表的DML操作數量,統計一個事務大於500條、時間大於300秒的事務

 

 

在線解析binlog

我在其中加入 tl 參數,指定時間時為北京時間就可以

./my2sql  -user root -password xxx -host xxx.com -port 3306 -mode repl -work-type stats  -start-file mysql-bin-changelog.169378  --stop-file mysql-bin-changelog.169379 -start-datetime "2023-02-09 10:20:00" -stop-datetime "2023-02-10 11:00:00"  -big-trx-row-limit 500 -long-trx-seconds 300 -tl "Asia/Shanghai" -output-dir ./tmpdir

 

離線解析binlog,但還是需要連接數據庫

./my2sql -user root -password xxx -host xxx.com -port 3306 -mode file -local-binlog-file ./mysql-bin-changelog.169378 -work-type stats -start-file mysql-bin-changelog.169378 -start-datetime "2023-02-09 10:20:00" -stop-datetime "2023-02-10 11:00:00" -big-trx-row-limit 500 -long-trx-seconds 3 -tl "Asia/Shanghai" -output-dir ./tmpdir

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM