如何备份我的客户数据?

如果您运行一个SaaS应用程序,或者运行一个应用程序,我很乐意听取您的意见。 在客户数据的安全性至关重要的地方,您如何确保安全并备份? 我很想知道您的主要主机(例如Heroku,Engine Yard,Rackspace,MediaTemple等)以及您用于备份的人员。

尽可能详细 – 例如快速浏览服务和存储的数据(例如图像),当用户上传图像时会发生什么情况(例如,它们会转到您的Linode VPS并发布到网站上)然后将它们自动发送到AWS或任何地方,然后每周一次由托pipe托pipe服务提供商将其备份到磁带,并且还将其备份到您的房屋/办公室)。

如果你也可以给出一些关于存储的单位成本(每GB /每用户/每月)的一些想法 – 平均来说,我真的很感激。

准备好启动我的应用程序,我想更多地了解所涉及的细节。

谢谢!

我处理相对较大的在线协作服务的操作。 我们在MySQL数据库中有将近200GB的关系数据,以及大约20TB的用户生成内容。

我们拥有自己的服务器硬件,所以我们有几个文件存储服务器用于用户生成的内容。 这些服务器运行MogileFS,它被configuration为跨群集复制每个文件的3个副本。 由于我们在3台不同的服务器上有拷贝,因此我们不在文件服务器上使用RAID。 存储3个副本意味着我们可以处理驱动器故障,或者closures服务器进行维护,每个文件仍然有2个副本。

我们每小时都会用本地脚本进行异地备份。 该脚本将查找新文件并在离线服务器上进行备份。 这个脚本保存自己的数据库,确切地说哪些文件已经被备份。 (我们可以使用时间戳来确定要复制哪些文件,但是这不会让我们在需要的时候“回填”备份,我们也可以检查远程服务器是否存在每个文件,但是有1.5亿个文件MogileFS,这将永远!)

我们的远程备份使用对称密钥进行encryption。 这实际上是相当优雅的。 我们有一个主备份密钥。 私钥存储在保险箱中,公钥在我们所有的文件服务器上都可用。 备份使用主公钥进行encryption。 这意味着它们都可以使用主密钥进行解密,但是即使我们的服务器全部受到攻击,攻击者也无法访问encryption的备份。

我们使用备份pipe理器来处理我们的MySQL数据库备份和其他杂项服务器备份。 备份pipe理器非常棒 – 它自动处理所有事情,比如encryption备份并将其发送到异地。 备份pipe理器执行服务器上指定目录的增量备份,并为我们的数据库运行mysqldump。

您甚至可以通过备份pipe理器来pipe理其他工具 – 例如,我正在使用备份pipe理器testingPercona XtraBackup,以便更快地进行MySQL备份。 (从技术上讲,XtraBackup不会加快备份速度 – 它可以加速恢复速度,如果没有XtraBackup,恢复我们的40GB MogileFS数据库需要将近一周时间,这有助于调整MySQL,但即使如此,恢复性能也不足。我刚开始testingXtraBackup,这可能允许我们在数小时内恢复数据库,而不是几天。)

我强烈build议使用备份pipe理器 – 设置起来非常快,处理所有build立远程备份的机制。 我甚至开始在我自己的两台个人服务器上使用它,在Amazon S3上存储encryption的备份。 在您的数据集非常大之前,备份pipe理器应该能够为您处理所有事情,包括服务器configuration,源代码和用户数据。 它是自动的,encryption的,使用起来非常简单。