记一次mysql从删库到恢复

听说过删库跑路吧,这就遇到了,项目上的队友在做数据库操作时“不小心”把数据库的表清空了,然后。。。tmd他还把库给删了,

目录

第一步:查看是否打开binlog日志

第二步:查找日志

第三步:找到删库时候的时间点对应的日志,导出分析一下

第四步:开始数据恢复


  • 第一步:查看是否打开binlog日志

show variables like '%log_bin%';

ON为打开,下面的路径就是binlog所在的目录,/home/mysql/data

binlog 名字一般是:mysql-bin.000010

第二步:查找日志

 

第三步:找到删库时候的时间点对应的日志,导出分析一下

使用mysqlbinlog命令导出bin日志为sql或txt文件

mysqlbinlog --no-defaults --database=dataxxx /home/mysql/data/mysql-bin.000018 > /mnt/binlog.sql

--database : 过滤指定数据库的日志

我把日志导出到了/mnt下,下载到本地开始分析,找到最后一次写表的时间点或日志点:

 这个决定了我恢复数据的截止点

第四步:开始数据恢复

由于是直接删库的,没办法,只能从头开始恢复数据,从第一个日志开始干

mysqlbinlog --no-defaults --database=dataxxx /home/mysql/data/mysql-bin.000010 | mysql -uroot -pPASSWORD -P3306 -h127.0.0.1

直接恢复hdiot库下面的所有数据。

恢复到有截止点的日志文件时,需要添加参数:

--start-position=2174 日志的起始点

--stop-position=17450818  正常数据的截止点

也可以用时间表示:

--start-datetime="开始时间" --stop-datetime="结束时间"

mysqlbinlog --no-defaults --database=hdiot --start-position=2174 --stop-position=17450818 /home/mysql/data/mysql-bin.000019 | mysql -uroot -pPASSWORD -P3306 -h127.0.0.1

恢复完之后查看数据和表都回来了,搞定。

最后建议:一定做好定时数据备份。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值