django的备份策略

zsq*_*are 26 deployment django backup

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

编辑:

我要备份什么?

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

Art*_*ert 16

我不知道有一种放之四海而皆准的答案尤其是因为你还没有说什么要备份.我平常的MO:

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

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

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

  • 对不起,我想我不清楚,我的意思是你可以编写自己的dump db,它可以内省设置并生成db agnostic命令 (4认同)
  • 而不是dump_database.py我建议使用数据库的转储工具,例如mysqldump.非常简单,适用于任何一套Django型号,降低维护成本.我同意你的其余答案. (2认同)