MySQL数据库恢复的经历。

时间:2023-03-09 06:54:45
MySQL数据库恢复的经历。

蛋疼,定时任务设置错误。把数据给删除了。还有一次是服务器时间不对,也把数据给删除了。

还好,开启了二进制日志,才算把数据找回,但是速度效率也太低。

痛定思变。在把一切交由电脑工作的时候,也要做好一定的防备工作。

先说缘由,本来是定时在晚上一个脚本执行清理数据的任务。结果不小心写错了。

本该是

55 20 31 10 * /home/tool/clean.sh

结果没细查直接就写成了

55 20 * * * /home/tool/clean.sh

结果大家都知道的了。

大惊之下进入mysql目录下看了一下日志文件还在。

MySQL数据库恢复的经历。

回想一下日期,是10月30日清理的数据,那么10月31日把数据又删除了一次,在没有做定时备份的情况下,只有把从10 30日到10月31日的数据重新做一次。

于是,利用mysqlbinlog的起始日期功能。

mysqlbinlog --start-date="2013-10-30 20:55:00" mysql-bin.000004 | mysql -uroot -p密码

这样就恢复了第一个。

然后一直这样操作到时间点的最后一个

mysqlbinlog --stop-date="2013-10-31 20:50:00" mysql.bin.000009 | mysql -uroot -p密码

数据终于找回。

大约5个G的数据,用了2个小时,真蛋疼。以后如果记得每两小时或者每4小时备份一下,那么大概需要15-20分钟就可以把数据找回来。

比较靠谱的做法是:

  每隔4小时备份一下数据。

  每两天清理一日志文件。