2011-02-25 14 views
24

Implementé recientemente un par de aplicaciones web creadas con django (en webfaction). Estos serían algunos de los primeros proyectos de esta escala en los que estoy trabajando, por lo que quería saber qué estrategia de respaldo efectiva era para mantener las copias de seguridad tanto en webfaction como en una ubicación alternativa.Estrategia de copia de seguridad para django

EDITAR:

¿Qué quiero guardar?

Base de datos y medios cargados por el usuario. (mi código se administra a través de git)

Respuesta

14

No estoy seguro de que haya una respuesta única para todos, sobre todo porque no ha dicho que desea hacer una copia de seguridad de. Mi MO habitual:

  • Código fuente: use control de fuente como svn o git. Esto significa que generalmente tendrá: copias de respaldo, implementación y repositorio para el código (especialmente en un drsc).
  • Base de datos: esto también depende del uso, pero por lo general:
    • tiene un comando de gestión dump_database.py que la introspección y la configuración para cada salida db voluntad el comando correcto volcado db (teniendo en cuenta el tipo y también el db nombre de la base de datos).
    • Tiene un trabajo cron en otro servidor que se conecta a través de ssh al servidor de aplicaciones, ejecuta el comando dump db management, tar el archivo sql con el nombre db + marca de tiempo como nombre de archivo y lo carga a otro servidor (Amazon s3 en mi caso).
  • Archivo de medios: p. cargas de usuarios. Mantenga un trabajo cron en otro servidor que pueda ingresar al servidor de aplicaciones y llame a rsync a otro servidor.

Lo que hay que tener en cuenta es cuál es el propósito de la copia de seguridad. Si se trata de una pérdida de datos accidental (ya sea un error de disco, error o inyección SQL) o simplemente restauración, puede mantener esos trabajos cron en el mismo servidor.

Si también desea estar seguro en caso de que el servidor se vea comprometido, no puede mantener las credenciales de copia de seguridad remota (sshkeys, amazon secret, etc.) en el servidor de aplicaciones. O bien, un atacante obtendrá acceso al servidor de respaldo.

+2

En lugar de dump_database.py, le recomendaría usar la herramienta de volcado de su base de datos, p. mysqldump. Muy simple, funciona para cualquier conjunto de modelos Django, menor costo de mantenimiento. Estoy de acuerdo con el resto de tu respuesta. –

+4

Lo siento, creo que no estaba claro, quise decir que puedes escribir tu propio archivo volcado de base de datos que pueda introspectar la configuración y generar un comando db agnóstico –

Cuestiones relacionadas