2012-01-10 16 views
6

Creo que alguien ya la ha sugerido:mongodb: cómo hacer copia de seguridad de mongodb

1. stop the mongod 
2. backup the data directory 

¿Es fiable, es decir, garantizar el 100% de éxito para restaurar? Y no puedo encontrar qué directorio almacena los datos ... ¿Algún comando puede ayudarme a encontrarlo?

Respuesta

6

Si el proceso mongod sale limpiamente (es decir, no se bloquea o kill -9 cosas), entonces es seguro copiar archivos de datos en alguna parte.

Si se rompe su instalación actual (por ejemplo, daños en los datos debido a un cierre no limpio), puede eliminar sus archivos, copiar esa copia de seguridad e iniciar mongod nuevamente.

El directorio de datos predeterminado es /data/db, pero se puede establecer en otro valor en su archivo de configuración. Por ejemplo, lo configuré en /var/lib/mongodb.

También puede usar mongodump para hacer una copia de seguridad desde un servidor en vivo (esto puede afectar el rendimiento). Use mongorestore para restaurar copias de seguridad realizadas por mongodump.

+0

Por: cómo utilizar ** mongodump ** y ** ** mongorestore, ver una pregunta similar y responder aquí para mongodump y mongorestore ** ** sintaxis: http://stackoverflow.com/a/ 21309914/2728686 – AmpT

5

En IGN hacemos copias de seguridad en caliente a través de mongodump ejecutándose como un trabajo cron por hora y tomando instantáneas de archivador (almacenamiento de NetApp) cada media hora. Si su sistema no es demasiado pesado y puede permitirse escribir bloques, intente usar fsync y lock para vaciar las escrituras en el disco y evitar nuevas escrituras. Esto puede ser seguido por mongodump y al finalizar puede desbloquear el db. Tenga en cuenta que debe ser administrador para hacerlo.

db.runCommand({fsync:1,lock:1}) 
+0

¿Qué opción recomendaría para escribir db pesados? – VinnyD

+0

Instantáneas de disco o esclavos retrasados. – lobster1234

+0

y ¿qué pasa con las copias de seguridad en entornos fragmentados? –

Cuestiones relacionadas