MySQL误删除表的内容恢复数据

由于配置错误,线上环境的MySQL数据被误删除,通过二进制日志(binlog)进行恢复。首先进行了全量备份,然后分析binlog找到删除操作前的状态,通过在测试环境模拟恢复验证方案。最后讨论了升级过程中的优化措施,包括定期备份、binlog设置等。
摘要由CSDN通过智能技术生成

问题描述:

        升级配置文件配置错误,kafka地址指向的是测试环境,同步脚本拉取测试环境数据把线上环境的topic和flume相关信息删除。系统没有全备份但是二进制日志是全的;

问题定位:

1、mysql没有general log

2、查看前一个binlog文件,有删除语句

3、 查看是否为程序删除,找到对应语句,通过日志关键字在程序中查找

grep /runtime/log/201812/10.log "DELETE FROM `rtime_flume_info`" 

分析代码和日志url地址,确定为同步时接口地址配置出错,查看当前配置文件,果然配置出错,修改为正确的配置。

解决步骤:

1、全量备份当前数据库状态,用于修改出错恢复到当前状态。

mysqldump -uroot -p dbname > dbname_20181211.sql 

2、查看binlog文件是否完整

mysqlbinlog --no-defaults mysql-bin.000001 > 01.sql 

  可以找到create db 语句

mysqlbinlog --no-defaults mysql-bin.000010 > 10.sql

mysql-bin.000010 为最后的一个binlog文件,找到删除操作对应的pos位置为 51313959,所以通过执行一遍binlog文件可以恢复到删除操作之前的数据库状态

3、在测试环境起一个mysql服务

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值