我正在做一个网络应用程序,需要一个备份计划。这是我到目前为止所得到的:

  • 每晚将 SQL 数据库加密备份到 Amazon S3 和我的外部驱动器(如果可能的话增量备份,还不太熟悉 PostgreSQL,但那是另一个线程)
  • 每晚将我的 Mercurial 存储库(包括 Apache 配置、部署脚本等)备份到 S3(通过 Time Machine 进行本地备份)

我应该添加其他内容吗?或者这会覆盖它吗?为了衡量数据的重要性,它是一个类似于 Basecamp 的项目管理应用程序。

有帮助吗?

解决方案

也许每周对数据库进行完整备份以及每晚增量备份?

这意味着,如果您的一个旧增量备份损坏,那么您将丢失不到一周的数据。

另外,请确保您有备份测试计划以确保备份正常工作。有很多关于这方面的恐怖故事,来自那些多年来一直在进行备份的公司,从未测试过它们,然后在需要时发现它们都没有任何好处。(我也曾在这样的公司工作过。值得庆幸的是,我发现备份在需要之前不起作用并解决了问题)。

其他提示

过去对我有用的最佳策略之一是让“备份”过程与安装过程相同,即我们在 Linux 中完全编写了服务器配置、应用程序创建、数据库设置等脚本,因此安装如下所示:

./install.sh [服务器] [应用程序名称]和备份/恢复./install [server] [application name] -database [数据库备份文件

在备份方面,通过 cronjob 完全备份数据库(MySQL 数据库)

这几乎确保了每次部署新实例时都对恢复进行测试,并且当硬件需要更换时,或者当给定服务器从客户那里获得过多负载时,脚本最终也被用于移动实例。

这是我几年前工作的 Saas 企业应用程序的设置,因此我们可以完全控制服务器。

如果您可以从增量备份更改为差异备份,我会的。如果您有增量备份,则必须应用每周完整备份,然后应用随后的每个增量备份。如果您的一个增量在本周早些时候失败,那么所有后续备份也将失败。

但是,如果您使用差异,则每个差异都包含自上次备份以来的所有更改。因此,即使本周早些时候其中一个备份失败,如果您最近有成功的备份,您仍然可以完全恢复。

我希望我能很好地解释这一点!

:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top