MySql binlog是否包含事务边界?

MySql binlog是否包含事务边界?,mysql,binlog,Mysql,Binlog,如果我正在阅读MySql binlog,我可以得到在同一事务中出现哪些语句的指示吗?有,但可能会提供一些帮助。它们提供了一个awk脚本,该脚本将解析二进制日志并提供事务详细信息,至少用于基于行的复制。我们不喜欢只链接的答案,所以我将在这里发布脚本本身: startdate=“2015-01-12 21:40:00” stopdate=“2015-01-12 21:45:00” logfile=“mysqld bin.000023” mysqlbinlog--base64输出=解码行-vv--st

如果我正在阅读MySql binlog,我可以得到在同一事务中出现哪些语句的指示吗?

有,但可能会提供一些帮助。它们提供了一个
awk
脚本,该脚本将解析二进制日志并提供事务详细信息,至少用于基于行的复制。我们不喜欢只链接的答案,所以我将在这里发布脚本本身:

startdate=“2015-01-12 21:40:00”
stopdate=“2015-01-12 21:45:00”
logfile=“mysqld bin.000023”
mysqlbinlog--base64输出=解码行-vv--start datetime=“$startdate”--stop datetime=“$stopdate”$logfile| awk\
'BEGIN{s_type=”“;s_count=0;count=0;insert_count=0;update_count=0;delete_count=0;flag=0;}\
{if(匹配($0,/#15.*表映射:.*映射到数字/){printf“时间戳:$1”“$2”表:$(NF-4);标志=1}\
else if(匹配($0,/(####################...*)/){count count count count+1;INSERT#count INSERT#count ins\
else if(匹配($0,/(####UPDATE.*.*)/){count=count+1;UPDATE#count=UPDATE#count+1;s#type=“UPDATE”;s#count=s#count+1;}\
else if(匹配($0,/(####DELETE FROM.*...*)/){count=count+1;DELETE#count=DELETE#count+1;s#type=“DELETE”;s#u count=s#count+1;}\
否则如果(匹配($0,/^(#at)/)和&flag==1和&s#u计数>0){print“查询类型:“s#u类型”“s#计数”行受影响;s#u类型=”“;s#u计数=0;}\
else if(match($0,/^(COMMIT)/){print“[事务总数:“计数”插入:“插入计数”更新:“更新计数”删除:“\
删除_count“]\n+--------------------------------------------------+---------------------------------------------------------------------------+-------------------------+”\
计数=0;插入计数=0;更新计数=0;删除计数=0;s\U类型=“s\U计数=0;标志=0}”