2018年04月6日网站服务器迁移完成……

mysql binlog日志解析的常用命令

mysql 苏 demo 244℃

binlog是MySQL层记录的二进制文件,记录MySQL的数据更新或潜在更新(不会记录select或show命令)。

开启依赖:
binlong_format = row,需要开启binlog_rows_query_log_events(该参数可以通过rows_query_event 事件记录原始的 SQL)。

日志解析常用命令:MySQLbinlog

mysqlbinlog /data/mysql_data/bin.000008 --database EpointFrame --base64-output=decode-rows -vv --skip-gtids=true |grep -C 1 -i "update merchandise set city_id=10028 where merchandiseid=10293" > /opt/sql.log
  • /data/mysql_data/bin.000008:需要解析的 binlog 日志。
  • database:只列出该数据库下的行数据,但无法过滤 Rows_query_event。
  • base64-output=decode-rows -vv:显示具体 SQL 语句。
  • skip-gtids=true:忽略 GTID 显示。
  • grep -C 1 -i “update merchandise set city_id=10028 where merchandiseid=10293″:通过管道命令筛选出所需 SQL 及执行时间。
  • /opt/sql.log:将结果导入到日志文件,方便查看

注意事项:
触发器执行的 SQL 不会记录在 Rows_query_event 中,只会记录对应的行数据。

–database 是无法过滤 Rows_query_event 的,只可以过滤行数据。

打赏

转载请注明:苏demo的别样人生 » mysql binlog日志解析的常用命令

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (12)or分享 (0)