Cómo crear y utilizar los backups de MongoDB en Ubuntu 16.04

,
Backups de Mongodb

Cada vez más aplicaciones web están utilizando MongoDB como motor de Bases de Datos. Así que es muy probable que en algún momento tengas la necesidad de utilizarlo en un entorno de producción. Se hace imprescindible para esto, crear backups de MongoDB de manera regular, con el fin de evitar una posible pérdida de datos. Afortunadamente MongoDB nos provee de herramientas para la creación de esos backups. En este tutorial te mostraré como utilizar dichas herramientas para crear un backup de una base de datos de MongoDB y por supuesto, cómo restaurarlo.

Requisitos Previos

Para seguir adelante necesitas:

Crear un Base de Datos nueva

Como crear una base de datos vacía no es muy útil en este caso, lo que debes hacer es crear una base de datos de prueba e insertar algunos datos en ella.

La forma más rápida (no siempre la más fácil) de interactuar con MongoDB es utilizar el shell de mongo. Para ello, basta con teclear:

Una vez que accedas a MongoDB, crea una nueva base de datos llamada testDB utilizando el comando use:

Los datos en una base de datos de MongoDB se guardan en colecciones. Por esta razón no es necesario crear una colección de manera explícita. Esta se crea automáticamente cuando se utiliza el método insert para escribir en una colección inexistente.

Puedes utilizar el siguiente código para agregar tres documentos en una colección que llamaremos testCOL utilizando el método insert:

Si la inserción fue correcta, deberás ver un mensaje similar a este:

Chequear el tamaño de la base de datos

Ya tienes una base de datos que contiene una colección con documentos. Así que ya es posible crear un backup de la misma. Sin embargo, si tienes una base de datos grande, tendrás como resultado un backup grande. Es muy recomendable chequear el tamaño de la base de datos antes de realizar el backup. De no hacer esto, se corre el riesgo de quedar sin espacio.

Para saber el espacio que ocupa la base de datos puedes utilizar el comando stats e inspeccionar el valor de la llave dataSize,. Este valor se expresa en bytes, por lo que puede ser necesario convertirlo a MegaBytes o GigaBytes:

Como se puede apreciar, la capacidad que ocupa esta base de datos es muy pequeña. Sin embargo, no es despreciable teniendo en cuenta que se tienen solo 3 documentos con muy pocos datos.

Nota: Este valor es un estimado del tamaño del backup, no podrás saber el valor real hasta que este no se realice completamente.

Crear el backup

Para crear el backup, debes emplear una utilidad llamada mongodump. Por defecto, esta utilidad crea un backup de todas las bases de datos existentes en el servidor de MongoDB. Para crear un backup de una base de datos específica debes utilizar la opción -d y especificar el nombre de la base de datos. De manera adicional debes indicarle a mongodump donde guardar el backup y especificar la dirección con la opción -o.

Para utilizar esta herramienta debes salir del shell de mongo. Puedes salir presionando CTRL+C.

Escribe el siguiente comando para crear el backup de la base de datos testDB y guardarlo en ~/backups/testDB_backup:

Si el backup se creó satisfactoriamente debes ver algo como esto:

Puedes notar que el backup no es un único archivo, sino un directorio con la siguiente estructura:


└── testDB ├── tetsCOL.bson ├── testCOL.metadata.json └── system.indexes.bson

Si necesitas mover el backup por alguna razón (por ejemplo migrar los datos a otro servidor) puedes comprimirlos de la siguiente forma:

Eliminar la base de datos

Para probar el backup que acabas de crear puedes utilizar un servidor de MongoDB en otro servidor o eliminar la base de datos que creaste previamente. En este punto te mostraré cómo eliminar la base de datos.

Vuelve a iniciar el shell de mongo y conéctate a la base de datos testDB. Esto se puede hacer en un solo comando, así:

Elimina la base de datos utilizando el método dropDatabase:

Si la base de datos se eliminó correctamente, la salida del comando debería ser muy similar a esta:

Puedes utilizar el método find para comprobar que, efectivamente, los datos fueron eliminados:

No verás ninguna salida para este comando porque no tiene nada que mostrar, ya que los datos no existen.

Restaurar la base de datos

Para restaurar una base de datos a partir de un backup creado por mongodump, debes utilizar otra herramienta llamada mongorestore. Antes de utilizarla recuerda salir del shell de mongo presionando CTR+C.

Utilizar mongorestore es muy sencillo todo lo que se necesita es la dirección del backup. Veamos:

Si la opercación de restauración fue exitosa verás algo como esto:

Para comprobar los datos restaurados, primero debes abrir el shell de mongo y conectarte a la base de datos testDB:

Luego, llama el método find en la colección:

Si todo salió como esperabas, a diferencia de la vez anterior, deberás ver la salida del comando:

{ «_id» : ObjectId(«5654e76f21299039c2ba8721»), «nombre» : «Pepe», «edad» : 25 } { «_id» : ObjectId(«5654e76f21299039c2ba8722»), «nombre» : «Carlos», «edad» : 35 }

Punto final

En este tutorial has aprendido cómo utilizar las herramientas mongodump y mongorestore para crear y restaurar backups de MongoDB. Como nota final debo alertarte que crear un backup de MongoDB es una operación costosa desde el punto de vista de los recursos del servidor. Por esto el rendimiento se puede ver reducido o afectado. Así que lo ideal sería crear los backups en los horarios de menor consumo de recursos. Siempre puedes encontrar mucha más información sobre los backups en el manual de MongoDB 3.0.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *