mysql drop_mysql恢复drop掉的表

手贱drop了几个表,以为能从昨天的备份中恢复,结果发现最近两个月的备份都是空文件,因为备份脚本在两个月前改错了!难道就这样丢失两个月的数据?镇定镇定——

d38ad08881172ecb4d6505033a41c56f.png

先看看mysql的配置文件

cat /etc/my.cnf

发现如下字样说明有救:

# Replication Master Server (default)

# binary logging is required for replication

log-bin=mysql-bin

log-bin顾名思义,就是对数据库任何操作的日志。虽然它只是增量日志,没有办法直接undo drop,但两个月前的备份+这两个月的日志=完整的数据库呀。

找找这文件在哪里,对centos来讲,一般位于

/usr/local/mysql/var

cd进入,ll一下,确定最近修改过的日志的文件名:

-rw-rw---- 1 mysql mysql     27687 Oct 29 08:12 mysql-bin.000001

-rw-rw---- 1 mysql mysql   1113246 Oct 29 08:12 mysql-bin.000002

-rw-rw---- 1 mysql mysql       264 Oct 29 08:13 mysql-bin.000003

-rw-rw---- 1 mysql mysql      1112 Oct 29 08:13 mysql-bin.000004

-rw-rw---- 1 mysql mysql       126 Oct 29 08:13 mysql-bin.000005

-rw-rw---- 1 mysql mysql       126 Oct 29 08:26 mysql-bin.000006

-rw-rw---- 1 mysql mysql       126 Oct 29 08:32 mysql-bin.000007

-rw-rw---- 1 mysql mysql       126 Oct 29 08:38 mysql-bin.000008

-rw-rw---- 1 mysql mysql 651639170 Dec 28 07:01 mysql-bin.000009

一般最后一个就是了。

然后利用此日志文件导出sql:

/usr/local/mysql/bin/mysqlbinlog --no-defaults --start-date='2016-10-28 05:00:00' --stop-date='2016-12-25 05:30:00' mysql-bin.000009 > restore.sql

接着先恢复两个月前的备份,然后导入此sql即可。

凡事有好有坏,如果不是这次误删,我就不会发现备份脚本出了问题。等到下次真正出事的时候,就为时晚矣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值