数据库逆向工程工具reverse_sql-HSYQ

MySQL数据库管理服务

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

查看二进制日志的路径

SHOW VARIABLES LIKE 'log_bin_basename'; picture.image picture.image

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

picture.image

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

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

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

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

下载数据库逆向工程工具
上传文件
  • 将下载后的工具上传至home文件夹中,并解压

unzip reverse_sql-reverse_sql_progress.zip picture.image

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

chmod +x reverse_sql_progress picture.image

生成回滚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输出到终端 picture.image picture.image

下载回滚SQL文件

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
vivo 容器化平台架构与核心能力建设实践
为了实现规模化降本提效的目标,vivo 确定了基于云原生理念构建容器化生态的目标。在容器化生态发展过程中,平台架构不断演进,并针对业务的痛点和诉求,持续完善容器化能力矩阵。本次演讲将会介绍 vivo 容器化平台及主要子系统的架构设计,并分享重点建设的容器化核心能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论