Mongodump
Mongodump creará ficheros bson grabando todos los datos de un mongod. Se puede usar con la sintaxis:
mongodump --host mongodb.example.net --port 27017
En el caso de conexión local podemos hacer simplemente mongodump En
cualquier caso creará una carpeta dump (se puede cambiar con --out). La
carpeta tendrá una subcarpeta por cada base de datos, incluyendo una
para
admin (y excluyendo la base de datos
local).
Si se quiere hacer una copia de seguridad de solo una base de datos se
puede usar la opción --db base de datos, y si dentro de la base de datos
se quiere especificar una colección se usará --collection.
mongodump --collection cromos --db aficionesinfantiles
Si queremos podemos grabar la información comprimida añadiendo --gzip.
Otra opción interesante es
--query <json>:
permite grabar solo los documentos que devuelve la query, que debe
incluirse entre comillas simples. La query también peude incluirse en un
fichero y en ese caso se usará la opción
--queryFile <path>
Un ejemplo;
mongodump --collection cromos --db infantil
--query '{"_id":"patrulla canina"}' --out cromosquery
En cualquier la información grabada se puede consutar usando:
bsondump fichero_dump
Mongorestore
Recupera un fichero creado con mongodump. Admite prácticamente los
mismos argumentos, (exceptuando --query o --queryFile), añadiendo al
final el nombre del fichero .bson.
Por defecto, mongorestore no "borra" las bases de datos y colecciones ya
existentes; simplemente añade la nueva información. Si se quiere borrar
previamente hay que añadir la opción --drop.
En el caso de haber usado compresión al hacer el dump se debe recuperar usando la opción --gzip:
mongorestore --gzip --archive=test.20150715.gz --db test
aunque también se puede hacer directamente a través del sistema operativo:
zcat /opt/backup/mongodump-2014-12-03/accounts.people.bson.gz
| mongorestore --collection people --db accounts -
Mongoimport
Mongoimport: Permite importar ficheros en formato CSV, TSV o JSON. Un ejemplo:
mongoimport --db test --collection restaurants --drop --stopOnError --file primer-dataset.json
Importa el fichero (--file) primer-dataset.json dentro de la base de
datos (--db) test, en particular como parte de la colección
(--collection) restaurants. La colección será borrada primero (--drop)
si ya existe. La importación parará si se encuentra un error
(--stopOnError)
Mongoexport
Sirve para exportar ficheros en JSON or CSV, que luego se importarán con mongoimport
Este sistema es muy útil para colecciones sencillas o como interfaz con
otras herramientas, pero el paso de BSON a JSON puede implicar pérdida
de datos (por ejemplo fechas), y por tanto no se recomiendo para copias
de seguridad.
Sistema de ficheros
Se trata de hacer copia de los directorios data. En otras bases de datos
este sistema no es seguro; además de las carpetas con datos del usuario
existen otras con diccionarios de datos etc, y copiar solo los
directorios de datos del usuario puede conducir a incoherencias tras la
recuperación en mongo no hay problema: si nos llevamos el directorio de
datos podemos recuperarlo y la base de datos volverá al mismo estado
(esto es cierto en loca, no tanto en conjuntos réplica o en sistemas con
sharding).
Backup desde los secundarios
Sistema utilizado en conjuntos de réplica. La idea es que en un conjunto
réplica se puede desconectar un secundario, hacer una copia de
seguridad y luego volver a activarlo. Esto evita tener que parar el
sistema durante la grabación. La administracion automática de los
conjuntos de réplica haran que el servidor se "ponga al día" en poco
tiempo.