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

数据库逆向工程工具reverse_sql

reverse_sql 是一个用于解析和转换 MySQL 二进制日志(binlog)的工具。它可以将二进制日志文件中记录的数据库更改操作(如插入、更新、删除)转换为反向的 SQL 语句,以便对系统或人为产生的误操作进行数据回滚和恢复。
**ps:**二进制日志需要开启(一键脚本安装的MySQL默认开启)
SHOW VARIABLES LIKE ‘log_bin’;
image.png
**ps:**二进制日志需要为ROW格式(一键脚本安装的MySQL默认ROW)
SHOW VARIABLES LIKE ‘binlog_format’;
image.png

查看二进制日志的路径

SHOW VARIABLES LIKE ‘log_bin_basename’;
image.png
image.png

定位需要恢复时间段

  • 根据二进制日志生成时间确定需要恢复的二进制日志,以ON.000706为例,该日志中记录的为4月13日02:01至4月14日02:00之间的操作

image.png

  • 在二进制日志的路径下将日志编译成可读的SQL文件

/usr/local/mysql/bin/mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v --skip-gtids ON.000706 >000706.sql
image.png

  • 查看SQL文件查询具体操作的时间点

image.png
**ps:**使用数据库逆向工程工具时必须填写日志的开始时间和结束时间,如果对操作时间较为明确,可以不做时间段的定位

下载数据库逆向工程工具

reverse_sql-reverse_sql_progress.zip

上传文件

  • 将下载后的工具上传至home文件夹中,并解压

unzip reverse_sql-reverse_sql_progress.zip
image.png

  • 将reverse_sql-reverse_sql_progress文件夹下的reverse_sql_progress文件给可执行权限

chmod +x reverse_sql_progress
image.png

生成回滚SQL文件

  • 在reverse_sql-reverse_sql_progress文件夹下执行生成命令,示例如下:

./reverse_sql_progress -ot ocr_invoice_main -op update -H 127.0.0.1 -P 3306 -u root -p A_isinojs#888 -d stms230302 --binlog-file /home/mysql/mysql8/ON.000706 --start-time “2024-04-13 14:00:01” --end-time “2024-04-13 17:49:00” --print

  • 参数说明:

-ot 要恢复的表,多张表用,逗号分隔
-op 误操作时的命令(insert/update/delete)
-H MySQL主机IP
-P MySQL端口号
-u MySQL用户名
-p MySQL密码
-d MySQL数据库名
–binlog-file 需要生成回滚SQL的Binlog文件
–start-time 开始时间
–end-time 结束时间
–print 将解析后的SQL输出到终端
image.png
image.png

下载回滚SQL文件

image.png

http://www.lryc.cn/news/394929.html

相关文章:

  • 四大内网穿透利器对比
  • 【LeetCode】每日一题:跳跃游戏 II
  • SpringBoot拦截器
  • uniapp中实现跳转链接到游览器(安卓-h5)
  • WPF UI 界面布局 魔术棒 文字笔记识别 技能提升 布局功能扩展与自定义 继承Panel的对象,测量与排列 系列七
  • 文件格式是.pb应该怎么查看?
  • android2024 gradle8 Processor和ksp两种编译时注解实现
  • elementui的table的@selection-change阻止事件改变
  • 空间数据采集与管理:为什么选择ArcGISPro和Python?
  • 案例精选 | 聚铭综合日志分析系统为江苏省电子口岸构建高效安全的贸易生态
  • TCP粘包
  • 数据泄露态势(2024年5月)
  • 二手闲置平台小程序的设计
  • 协程libgo的使用
  • 什么叫低频晶振?低频晶振最低频率能达到多少?低频晶振封装尺寸有哪些?
  • Splunk Enterprise 任意文件读取漏洞(CVE-2024-36991)
  • 零基础STM32单片机编程入门(九)IIC总线详解及EEPROM实战含源码视频
  • 数据库的操作
  • 常见的认证方式
  • DolphinScheduler部署安装or基础介绍(一)
  • Failed building wheel for pyaudio Running setup.py clean for pyaudio
  • 【ARMv8/v9 GIC- 700 系列 1 -- Programmers model for GIC-700】
  • exel带单位求和,统计元素个数
  • JavaScript里方括号[]的使用
  • 俯卧撑计数器(Python)
  • UVA12342 Tax Calculator 题解
  • WebKit中Websockets的全面支持:实现高效实时通信
  • 微信小程序的智慧物流平台-计算机毕业设计源码49796
  • 旅游 | 西岳华山
  • 如何优化Java中的内存占用?