MySQL利用binlog增量恢复数据库

数据库中表被误删除 恢复方法
首先分析表是否重要
1 重要的情况处理
1 停服务,挂维护页面,保证数据一致性
2 找一个新的数据库做恢复测试,同时对故障库进行备份
3 恢复前日备份,恢复完毕后 拷贝 binlog过来
4 查找binlog位置,获取故障前一刻binlog位置 追binlog
5 启动测试
6 对外启动服务

要确保我们有之前的备份,要已经了开启binlog日志
查看当前使用的binlog日志
show master status;
在这里插入图片描述

先手动切割出一份binlog让所有数据写到新的binlog上面
mysqladmin -uroot -p flush-log

拷贝离问题点最近的binlog日志
cp /application/mysql/data/mysql.00000x /tmp/

查看position号,
全备的时候加了master-data=2 在备份中会有POS号,表示这次备份到这个POS号结束
在这里插入图片描述

把binlog二进制文件导出成SQL语句,把错误语句排除
从备份文件中找到最后POS号,在binlog备份时,从此POS号开始
mysqlbinlog --skip-gtids --start-position=194–stop-position=1519 -d he /data/binlog/mysql-bin.000006 >/backup/bin.sql
-d 只导出指定库的SQL语句
如果开启了GTID 则必须要加上–skip-gtids参数

找出并删除错误语句
mysqlbinlog --skip-gtids -d he /data/binlog/mysql-bin.000006 >/backup/bin.sql
vim bin.sql
把出问题的sql语句删除掉

恢复最近一次备份
mysql -uroot -p he < /tmp/all_bak.sql

把修改好的数据导入
mysql>source bin.sql

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值