解析 MySQL Binlog 詳細信息的命令
以下是解析 MySQL Binlog 詳細信息的常用命令:
1. 基本 binlog 解析命令
# 查看 binlog 文件內容(基本格式)
mysqlbinlog /var/lib/mysql/mysql-bin.000001# 查看特定時間段的 binlog
mysqlbinlog --start-datetime="2025-08-23 00:00:00" --stop-datetime="2025-08-23 23:59:59" /var/lib/mysql/mysql-bin.000001# 查看特定位置的 binlog
mysqlbinlog --start-position=107 --stop-position=1000 /var/lib/mysql/mysql-bin.000001
2. 詳細解析命令(帶解碼和格式化)
# 詳細解析 binlog(解碼 base64 并顯示行事件)
mysqlbinlog --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000001# 解析并顯示特定數據庫的 binlog
mysqlbinlog --database=your_database_name -v /var/lib/mysql/mysql-bin.000001# 將結果輸出到文件
mysqlbinlog --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000001 > binlog_analysis.txt
3. 高級解析命令
# 解析多個 binlog 文件
mysqlbinlog /var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.000002# 解析并顯示 SQL 語句(而不是行事件)
mysqlbinlog --base64-output=DECODE-ROWS -v --verbose /var/lib/mysql/mysql-bin.000001# 解析并排除特定數據庫
mysqlbinlog --exclude-databases=mysql,sys -v /var/lib/mysql/mysql-bin.000001
4. 遠程服務器 binlog 解析
# 從遠程服務器讀取 binlog
mysqlbinlog --read-from-remote-server --host=your_mysql_host --user=username --password /path/to/binlog/mysql-bin.000001
5. 使用管道進行進一步處理
# 解析并過濾特定表
mysqlbinlog --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000001 | grep -A 10 -B 2 "your_table_name"# 解析并統計操作類型
mysqlbinlog --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000001 | grep "### " | awk '{print $2}' | sort | uniq -c
6. 生成可執行的 SQL 文件
# 將 binlog 轉換為 SQL 文件
mysqlbinlog --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000001 > binlog_replay.sql# 或者直接生成可執行 SQL(不包含行事件解碼)
mysqlbinlog /var/lib/mysql/mysql-bin.000001 > binlog_replay.sql