MySQL数据库恢复的经历。
蛋疼,定时任务设置错误。把数据给删除了。还有一次是服务器时间不对,也把数据给删除了。
还好,开启了二进制日志,才算把数据找回,但是速度效率也太低。
痛定思变。在把一切交由电脑工作的时候,也要做好一定的防备工作。
先说缘由,本来是定时在晚上一个脚本执行清理数据的任务。结果不小心写错了。
本该是
55 20 31 10 * /home/tool/clean.sh
结果没细查直接就写成了
55 20 * * * /home/tool/clean.sh
结果大家都知道的了。
大惊之下进入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小时备份一下数据。
每两天清理一日志文件。