下厨房数据丢失与MySQL数据库备份策略
近期“下厨房”网站的MySQL数据库被技术人员操作失误,导致了网站两个多月的用户数据丢失。损失不可谓不严重,性质不可谓不恶劣。作为管理人员,除了开除操作失误的技术人员之外,我们应该很认真的思考一下如何做好MySQL数据库的备份工作了。
做任何事情都要讲究策略,不然后果将会很严重啊!MySQL数据库的备份更是如此!首先,我们要高度重视MySQL数据库的作用。作为一个网站来讲,什么数据最重要,当然是业务数据库了!一个活跃的网站,每天都有大量数据生成、更新或者被去掉。所以,每时每刻的数据都很重要!
既然MySQL数据库如此重要,那我们该怎么保护它呢?作为一个中小型的网站项目,对MySQL的数据备份应该从以下几个方面去做。
1、硬盘冗余
洪哥所说的硬盘冗余,就是指在MySQL的服务器上,至少使用一种带镜像功能的RAID技术,比如RAID1、RAID5、RAID6、RAID10等。这样做的目的很简单,防止在线数据库由于某块硬盘的损坏而导致数据丢失。弄个RAID成本很低,但却能把数据安全性提升一个档次,何乐而不为呢?
2、定期备份MySQL数据库
每天要有本地的备份、每天要有异地的备份,这是定期备份的基本要求。当然,既然说是定期备份,那肯定不是最新的。不过,这个阶段性数据对于一些已经正常删除的数据来说,实在是太好了!对于这种定期的备份,采用什么样的备份方式,这个没有太大的关系。拷贝文件、dump出sql语句等均可。
3、保存日志
binlog是恢复数据的又一利器。有了完整完整的定期备份,再加上binlog,即使当前运行的数据库被意外破坏了,你也不用担心恢复不了。
4、MySQL集群实时同步
其实使用MySQL集群,主要作用不是做备份,而且做高可用性。如果主数据库服务器挂了,我们可以立即把从数据库服务器顶上去用。当然,如此把从数据库服务器部署在异地机房,而可以实现异地备份,防止机房断电、机房断网、机房被攻击瘫痪这些个狗血事件的发生。
“下厨房”遇到的问题是,定期备份很长时间没做了,binlog接不上,只能靠恢复硬盘已删除数据去恢复数据库。苦了那些兄弟们了!
要饭二维码
