当前位置:   article > 正文

【MySQL】根据binlog日志获取回滚sql的一个开发思路

【MySQL】根据binlog日志获取回滚sql的一个开发思路

根据binlog日志获取回滚sql的一个开发思路

需要获取的信息

  • thread_id

  • 打开 mysql 客户端 开始时间

  • 关闭 mysql 客户端 结束时间

binlog 匹配流程

  • 指定 mysql 客户端 开始时间和结束时间

  • 先匹配 thread_id 相同的

  • 然后匹配 ^BEGIN$行和 ^COMMIT/*!*/;$行之间的数据

  • 当匹配到 ^COMMIT/*!*/;$行,需要再次寻找 thread_id 相同的行,匹配到后执行上一个流程

  • 直到匹配到文件结尾

具体流程

  1. 开启一个mysql连接
  2. 查看当前开始时间
  3. 查看当前线程 id
  4. 执行 sql
  5. 失败处理逻辑
  6. 查看当前结束时间
  7. 关闭mysql连接
  8. mysqlbinlog 命令 截取 指定开始时间和结束时间的 binlog文件
  9. 用代码匹配binlog信息中的 thread_id
  10. 匹配到 binlog 中的 thread_id 后 匹配 ^BEGIN$
  11. 匹配到 ^BEGIN$行后将行内容追加至文件
  12. 匹配到 ^COMMIT/*!*/;$行 结束追加
  13. 在匹配 thread_id 然后执行循环执行
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/881982
推荐阅读
相关标签