【MySQL】利用binlog回滚DML操作

文章介绍了在MySQL环境中,如何通过binlog(日志文件)进行数据恢复,特别是针对开发人员或测试人员误删或更新错误的数据。提供了两个shell脚本,`del_time_recovery.sh`用于回滚delete操作,`update_time_recovery.sh`用于回滚update操作,以及提到的mysqlbinlog_back.py和MyFlash工具,帮助根据时间范围恢复数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介
数据库运行过程中难免会发生误操作,特别是在测试环境 开发人员或测试人员有时会误删或者更新错误某些数据。这时可以用binlog闪回DML操作。

条件:

  • 1.mysql binlog必须存在且是row格式的
  • 2.反向生成的表必须有主键
  • 3.表结构不能有更改
1.shell脚本闪回:
# 脚本 del_time_recovery.sh(根据起止 time恢复)用于回滚delete操作:

#!/bin/bash
# File Name   : del_time_recovery.sh
# Author      : wang
# Description : delete recover according to starttime and endtime.
Usage() {
   
   
cat << EOF
mysql_delete_recovery
OPTIONS:
   -b      binlog name
   -s      starttime
   -e      endtime
   -d      database name
   -t      table name
For secrity: This scripts check the full need arguments
EOF
}
while getopts ":b:s:e:d:t:" opt; do
  case $opt in
    b)
      logname=${OPTARG}
      ;;
    s)
      starttime=${OPTARG}
      ;;
    e)
      endtime=${OPTARG}
      ;;
    d)
      db=${OPTARG}
      ;;
    t)
      table=${OPTARG}
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      exit 1
      ;;
    :)
      echo "Option -$OPTARG requires an argument." &g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁毕业设计专业开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值