MongoDB se considera uno de los ejemplos clásicos de sistemas NoSQL. Sus documentos están compuestos por pares clave-valor, que son la unidad básica de datos en MongoDB. Sus colecciones contienen grupos de documentos y funciones que son equivalentes a tablas en bases de datos relacionales. MongoDB es una base de datos que surgió a mediados de la década de 2000. En este artículo, aprenderemos cómo hacer una copia de seguridad de los datos y luego restaurarlos. La guía fue desarrollada en una computadora con el sistema operativo Ubuntu 20.04.2 LTS.
formato de datos MongoDB
Uno de los estándares populares para el intercambio y almacenamiento de datos es JSON (Notación de objetos de JavaScript). JSON puede describir efectivamente datos con estructuras complejas. En este sentido, la forma de almacenar datos en MongoDB es similar a JSON, aunque técnicamente no se utiliza JSON. En lugar de JSON, MongoDB usa BSON (JSON binario) para almacenar datos en MongoDB. BSON hace que trabajar con datos sea más rápido. Proporciona una búsqueda y un procesamiento más rápidos. Aunque cabe señalar que BSON, a diferencia de JSON, tiene un pequeño inconveniente. En general, los datos JSON ocupan menos espacio que los de BSON; por otro lado, la alta velocidad compensaría completamente esta desventaja.
Entonces, conectémonos a nuestro MongoDB y creemos tres bases de datos para copias de seguridad. Serán DB1, DB2 y DB3. Para llenar estas bases de datos, agreguemos algunas colecciones.
use DB1 db.createCollection("posts1") db.createCollection("address1") db.createCollection("phone1") use DB2 db.createCollection("posts2") db.createCollection("address2") db.createCollection("phone2") use DB3 db.createCollection("posts3") db.createCollection("address3") db.createCollection("phone3")
Hemos creado nuestras bases de datos. Ahora vamos a comprobar si todo está bien:
use admin show dbs
Como puede ver, nuestras bases de datos están bien. Ahora vamos a comprobar si tienen las colecciones que hemos creado antes.
use DB1 show collections use DB2 show collections use DB3 show collections
Todas las colecciones están ahí. Ahora podemos pasar a la primera opción de copia de seguridad.
Para hacer una copia de seguridad, inicie sesión como root. Ahora cree un directorio para almacenar la copia de seguridad:
$ mkdir /tmp/backup_v1
Ahora use el siguiente comando para crear una copia de seguridad:
$ mongodump --host=localhost --gzip --db DB1 --archive=/tmp/backup_v1/backup-db-1.gz
Ahora, después de crear una copia de seguridad, vayamos al directorio de la base de datos y veamos qué tiene usando el siguiente comando:
$ ls -la /tmp/backup_v1
Como puedes ver, nuestra Copia de Seguridad acaba de ser creada.
Ahora, para restaurar los datos de este tipo de copia de seguridad, usamos el siguiente comando:
$ mongorestore --gzip --archive=/tmp/backup_v1/backup-db-1.gz
En este ejemplo, usamos solo un comando para hacer una copia de seguridad, que luego se archiva. Hay varias opciones sobre cómo hacer una copia de seguridad. En este artículo, los discutiremos uno por uno.
Copia de seguridad de todas las bases de datos, sin compresión de datos.
Vamos a crear un directorio para almacenar la copia de seguridad:
$ mkdir /tmp/backup_v2
Use el siguiente comando para hacer una copia de seguridad:
$ mongodump --out /tmp/backup_v2
Después de una copia de seguridad exitosa, vayamos al directorio de la base de datos y veamos qué tiene. Tiene colecciones BSON y JSON sin compresión.
$ ls -la /tmp/backup_v2/db1
Ahora restaure los datos de esta copia de seguridad usando el siguiente comando:
$ mongorestore --drop --dir /tmp/backup_v2
Aquí, el parámetro –drop se usa para eliminar una colección antes de importarla (si existe) para evitar errores de clave duplicada. Este parámetro –drop debe usarse con precaución.
Ahora restaure una colección específica (por ejemplo, posts1 de DB1) desde una copia de seguridad de todas las bases de datos:
$ mongorestore --drop --dir /tmp/backup_v2 --nsInclude 'DB1.posts1'
Restaure todas las bases de datos y todas las colecciones excepto una colección específica (por ejemplo, posts1 de DB1):
$ mongorestore --drop --dir /tmp/backup_v2 --nsExclude 'DB1.posts1'
Copia de seguridad de todas las bases de datos con compresión
Ahora cree una copia de seguridad y comprima el archivo de copia de seguridad:
$ mkdir /tmp/backup_v3 $ mongodump --gzip --out /tmp/backup_v3
Ahora vea el archivo de copia de seguridad:
$ ls -la /tmp/backup_v3/db1
Aquí el archivo de copia de seguridad contiene archivos comprimidos.
Ahora restaure los datos de este tipo de copia de seguridad:
$ mongorestore --gzip --drop --dir /tmp/backup_v3
Copia de seguridad de todas las bases de datos con compresión en un solo archivo (.gz)
Cree una copia de seguridad de todas las bases de datos con compresión en un solo archivo (.gz):
$ mkdir /tmp/backup_v4/ $ mongodump --gzip --archive=/tmp/backup_v4/my_backup.gz
Ahora restaure los datos de la copia de seguridad usando el siguiente comando:
$ mongorestore --gzip --drop --archive=/tmp/backup_v4/my_backup.gz
Hacer una copia de seguridad de una base de datos específica
Crear una copia de seguridad de una base de datos específica
$ mkdir /tmp/backup_v5 $ mongodump --gzip --out /tmp/backup_v5 --db DB2
Restaure los datos de esta copia de seguridad:
$ mongorestore --gzip --drop --dir /tmp/backup_v5
Copia de seguridad de una única colección de direcciones2 de DB2
Cree una copia de seguridad de una sola colección de direcciones2 de DB2
$ mkdir /tmp/backup_v6 $ mongodump --gzip --out /tmp/backup_v6 --db DB2 -c address2
Realice una copia de seguridad de DB2 completo excepto una sola colección de publicaciones2
Cree una copia de seguridad de DB2 completo, excepto una sola colección de publicaciones2
$ mkdir /tmp/backup_v7 $ mongodump --gzip --out /tmp/backup_v7 --db DB2 --excludeCollection posts2
Publicación traducida automáticamente
Artículo escrito por alexeyshepelev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA