django的备份策略

时间:2011-02-25 17:01:07

标签: django deployment backup

我最近部署了几个使用django构建的Web应用程序(在webfaction上)。 这些将是我正在开展的这种规模的第一批项目,因此我想知道在webfaction和备用位置维护备份的有效备份策略是什么。

编辑:

我要备份什么?

数据库和用户上传的媒体。 (我的代码是通过git管理的)

1 个答案:

答案 0 :(得分:15)

我不确定是否有一个适合所有答案,特别是因为您没有说要打算备份的 。我平常的MO:

  • 源代码:使用svn或git等源代码控制。这意味着您通常会拥有:代码的dev,deploy和repository备份(特别是在drsc中)。
  • 数据库:这也取决于使用情况,但通常是:
    • 拥有dump_database.py管理命令,该命令将内省设置,并且每个db都将输出正确的db dump命令(考虑db类型和数据库名称)。
    • 在另一台服务器上 通过ssh连接到应用程序服务器,执行dump db management命令,将带有db name + timestamp的sql文件作为文件名,并上传它到另一台服务器(亚马逊在我的情况下是s3)。
  • 媒体文件:例如用户上传。将cron作业保存在可以ssh到应用程序服务器的另一台服务器上,并将rsync调用到另一台服务器。

要记住的是,备份的预期目的是什么。 如果是偶然的(无论是磁盘故障,错误还是SQL注入)数据丢失或只是恢复,您可以将这些cron作业保留在同一台服务器上。

如果您还希望在服务器遭到入侵时保持安全,则无法在应用程序服务器上保留远程备份凭据(sshkeys,amazon secret等)!否则攻击者将获得对备份服务器的访问权。