当前位置: 首页 > news >正文

binlog解析工具——binlog2sql

目录

      • 一、binlog2sql 的定义与用途
      • 二、使用方法
        • 1. **安装与配置**
        • 2. **常用命令示例**
        • 3. **具体案例:误删数据恢复**
      • 三、类似工具对比
      • 四、注意事项

一、binlog2sql 的定义与用途

binlog2sql 是一款开源的 Python 工具,用于解析 MySQL 的 binlog 文件,生成标准 SQL 或回滚 SQL,实现数据恢复和衍生功能。其核心用途包括:

  1. 数据快速回滚(闪回):通过解析 binlog 生成反向 SQL,恢复误删除或误修改的数据。
  2. 主从切换修复:当主从切换后新主库数据丢失时,通过 binlog 恢复数据一致性。
  3. 生成标准 SQL:用于审计、数据迁移或分析数据库操作历史。

二、使用方法

1. 安装与配置
  • 安装依赖:需 Python 2.7 或 3.4+,通过 Git 克隆项目并安装依赖:
    git clone https://github.com/danfengcao/binlog2sql.git
    cd binlog2sql
    pip install -r requirements.txt
  • MySQL 配置
    [mysqld]
    server_id = 1
    log_bin = /path/mysql-bin.log
    binlog_format = row
    binlog_row_image = full
  • 用户权限:需 SELECTREPLICATION SLAVEREPLICATION CLIENT 权限。
2. 常用命令示例
  • 生成标准 SQL
    python binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'password' -dtest -t table1 --start-file='mysql-bin.000002'
    
  • 生成回滚 SQL(闪回模式):
    python binlog2sql.py --flashback -h127.0.0.1 -P3306 -uadmin -p'password' -dtest -ttable1 --start-file='mysql-bin.000002' --start-position=763 --stop-position=1147
3. 具体案例:误删数据恢复
  • 场景:误删表 test.tbl 的所有数据。
  • 步骤
    1. 定位误操作的 binlog 文件及位置:
      SHOW MASTER STATUS;  -- 获取当前 binlog 文件名(如 `mysql-bin.000052`)
      
    2. 生成回滚 SQL:
      python binlog2sql.py --flashback -h127.0.0.1 -P3306 -uadmin -p'admin' -dtest -ttbl --start-file='mysql-bin.000052' --start-datetime='2024-09-23 19:00:00' > rollback.sql
    3. 执行回滚 SQL:
      mysql> source rollback.sql;
      

三、类似工具对比

  1. my2sql(推荐):

    • 语言与性能:基于 Go 开发,解析速度比 binlog2sql 快数十倍(1.1G binlog 解析仅需 1-2 分钟)。
    • 功能扩展:支持生成 DML 统计、分析大事务、支持更多数据类型(如 JSON、BLOB)。
    • 使用场景:除闪回外,还可用于主从延迟分析和高频更新表定位。
  2. MyFlash

    • 特点:基于 C 语言,生成反向二进制 binlog 文件,需通过 mysqlbinlog 转换为 SQL。
    • 限制:仅支持回滚操作,功能较为单一。
  3. 对比总结

    工具语言性能功能丰富度适用场景
    binlog2sqlPython较慢基础闪回、标准 SQL小规模数据恢复
    my2sqlGo极快闪回、统计、事务分析生产环境大数据量处理
    MyFlashC中等仅回滚二进制回滚需求 。

四、注意事项

  • binlog 格式限制:闪回需 binlog_format=rowbinlog_row_image=full
  • DDL 不可逆:无法恢复 DROP TABLE 等 DDL 操作,需依赖备份。
  • 权限与兼容性:MySQL 8.0 需配置 mysql_native_password 认证插件。

通过以上工具,用户可根据数据量、恢复速度需求和功能复杂度选择合适的解决方案。

相关文章:

  • 机械师安装ubantu双系统:二、磁盘分区
  • 【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建
  • 浏览器游戏的次世代革命:WebAssembly 3.0 实战指南
  • 人脑能够通过视频信息快速建模出现实场景,原因有哪些方面?
  • 人工智能数学基础实验(一):智能推荐系统实战
  • CA自签名证书创建--证书链生成脚本
  • 强化学习在大模型中的应用详解
  • 分几个好用的系统提示词
  • FreeRTOS--信号量
  • EPD_2IN7_V2_Clear() 和 Paint_Clear(WHITE) 的区别
  • CV中常用Backbone-3:Clip/SAM原理以及代码操作
  • # 使用 Hugging Face Transformers 和 PyTorch 实现信息抽取
  • 小土堆pytorch--神经网络搭建小实战Sequential的使用
  • 机器学习算法-一元线性回归(最小二乘拟合 and 梯度下降)
  • java三种常见设计模式,工厂、策略、责任链
  • OWASP Juice-Shop靶场(⭐⭐)
  • aws(学习笔记第四十二课) serverless-backend
  • 2025年5月系分论文题(回忆版)
  • 为什么size_t重要,size_t的大小
  • 理论物理:为什么在极低温(接近绝对零度)时,经典理论失效?
  • 业网站制作/可以推广网站
  • iis7.5 网站打不开/我想注册一个网站怎么注册
  • 泉州做网站设计公司/灰色行业seo
  • 中国神鹰网站建设/app推广拉新一手渠道
  • 建设银网站/ciliba最佳磁力搜索引擎
  • 在线购物商城平台/我是seo关键词