大数据那边有个需求,希望能知道上游的MySQL的binlog文件的文件名和开始时间,用于偶尔出现的cdc的修数据用(PS:如果CDC时候用了GTID的模式话就不需要用到这里的方法了)。
简单写个脚本,如下:
user='dts'
passwd='123456'
host='192.168.31.181'
mysql -u${user} -p${passwd} -h ${host} 2>/dev/null -BNe 'show master logs;' > binlog_list_tmp
cat binlog_list_tmp | awk '{print $1}' > binlog_list
while read line ; do
echo "------------------------------------"
echo ${line}
mysqlbinlog -u ${user} -p${passwd} -h ${host} --read-from-remote-server ${line} -vv --base64-output=decode-rows --start-position=4 --stop-position=123 2>/dev/null | egrep 'Start: binlog' | awk '{print $1 " " $2}'
done < binlog_list
注意上面的--stop-position的值随便填个就行,只要比4大就行。
脚本的运行结果类似如下:
------------------------------------
binlog.000001
#240926 14:39:32
------------------------------------
binlog.000002
#240926 18:03:59
------------------------------------
binlog.000003
#240926 18:04:13
关于mysqlbinlog的,还可以参考老叶的这篇 https://cloud.tencent.com/developer/article/2185095
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。