我最近在The Register网站(www.theregister.co.uk)上阅读到一篇题为“备份神话”的好文章,当时我就想这是一个很好的博客主题,因为,许多人备份做的很差而自己却浑然不知。所以,借鉴于该篇文章(http://www.theregister.co.uk/2013/07/12/storagebod_monomyth/),我发表以下观点(许多内容是经过我修改的)。

每个人都知道需要备份,嗯,每个人都知道自己需要采用某种方式保护自己的数据。虽然保护数据有多种方式,但是,备份确实是一种很好的方式。

为把工作做好、做到极致,你就必须准确完好地备份所有重要数据,并对备份数据进行加密保护,将备份数据保存在另一个地方并且进行恢复测试,以便满足及时恢复的目标,至少是季度恢复目标,否则的话就达不到效果。

设计恢复策略及目标- 许多人都有自己的备份目标及方法,如,每天进行备份,备份在某些目录下,保存7天等等。但是,他们很少考虑到如何使用备份进行数据恢复,尤其是恢复何种数据、何人何地以及如何进行数据恢复工作等等,以及恢复需要花费多长时间。设计您的恢复目标,然后采用备份来实现该目标,然后测试是否能够实现该目标。

按需备份- 许多人备份所有东西,备份整个服务器。或者,他们认为,需要备份的东西太多就不备份了。尤其是,相比公司或数据中心局域网而言,互联网数据量大,备份是一份更痛苦的工作。您应该先设想一下您的恢复流程及如何进行数据恢复,然后备份所需备份的东西实现数据恢复。尤其需要注意的是:不要备份OS,仅备份您构建系统时所需要的某些数据,如etc目录。

复制不等于备份- 我们发现有许多客户,他们有很多从机,所以他们以为没有必要进行备份工作。从许多层面来看,这确实是一个拙劣的想法,但如果数据损坏、表格丢失或者关键数据被删除或更改掉呢?

仅仅备份从机数据并非上策- 对于MySQL而言,由于许多原因,主从机不同步是司空见惯的事情。若不使用Percona优越的pt-table-checksum工具来验证从机数据的话,根本无法完全相信从机数据的正确性。如果您运行这个工具的话(您必须运行这个工具),您可以放心地备份从机。不然的话,您还是可以继续备份从机数据,但是要考虑到100%的数据正确性是何等的重要(可能没有这么严重),还是要进行恢复测试及数据抽检。注意:如果您经常是从从机上读取数据并且实际用户也没有抱怨过数据错误的话,那么您的从机是确实很好的,但是,还是使用Percona 工具比较好。

RAID 不是备份- 的确,当RAID能够工作的很好的时候,对于保存在线数据确实很有帮助,但是,不管从何种定义来看,RAID绝不是备份。

数据备份对于开发/测试(Dev/Test)是很有益处的 – 定期(如每周)为开发及测试进行数据备份能够简便快速地测试备份及恢复。但是,通常此类数据是很有价值的数据,所以,最好不要在开发员电脑、办公数据库或易访问的测试系统中毫无限制地暴露这些数据。最佳的做法是:采用匿名数据,即在数据进入开发或测试系统前,变更电子邮件、物理地址、名称、电话号码等等,将这些数据变更为随机的代码。不要因为备份安全性较差,轻易地泄露有价值的数据。

对备份进行加密保护 – 将备份从所在的机器移出之前,需对其进行加密保护,以避免数据在传输过程中被窃取,这样,不论是通过局域网、互联网、磁带、FTP或是任何途径进行数据传输,都不会被窃取。将备份数据从服务器中移出之前,须使用简单的密钥进行数据保护,当然,还必须时刻小心保管好数据并不时地测试密钥。

更新备份- 系统变更时常发生,尤其是在互联网上。你必须每个季度进行检查,以确保你备份的是正确的数据,比如你上个月新增的数据库,此外,还须确保已包括了重命名的图片目录及新增的Redis系统。尽管备份测试数据也是有益处的,但是,很容易会丢失新/更改后的目录、数据及服务。

最后,确保备份能够有效工作 – 您如何知道呢?您每天有备份报表吗?这报表告诉你备份的数据的大小吗?这样,当您期待5 GB的数据的时候,您就不会备份500KB的数据 (您可能会惊诧奇怪这个事情经常发生)。最后,检查备份是否有效的唯一途径是对整个系统的备份数据进行恢复及测试,包括配置数据、网络对象、代码及数据等等。

了解备份、喜爱备份、并对其进行加密和测试。备份每一数据,日夜备份。