Cuando desarrollamos una aplicación o api que utliza como base de datos Monogdb es muy importante poder realizar respaldos periodicos de nuestra base de datos.
Cómo primer paso debemos instalar aws-cli ejecutando el siguiente comando en nuestra terminal.
sudo apt-get install awscli |
Después de haber instalado aws-cli debemos configurar nuestras keys para acceder a la cuenta de S3 ejecutando el siguiente comando en nuestra terminal.
aws configure |
Donde ingresaremos los siguientes datos:
-
AWS Access Key ID
-
AWS Secret Access Key
Ahora debemos crear nuestro archivo .sh que ejecutara varios comandos para realizar nuestro respaldo, ejecutamos el siguiente comando en nuestra terminal.
sudo nano dump.sh |
#!/bin/sh ## creamos nuestro carpeta en este caso se va a crear una carpeta ## con la fecha por ejemplo 9-9-2017 9 de septiembre del 2017 DIR=`date +%m-%d-%y` ## ingresamos en donde queremos guardar temporalmente nuestro respaldo DEST=/home/ubuntu/db_backups/$DIR ## ingresamos el nombre del bucket de s3 BUCKET=mybucketbackup; ## creamos la carpeta para guardar nuestro respaldo mkdir $DEST ## ejecutamos el comando mongodump ## -h host de la base de datos, si se encuentra en el mismo servidor por default podemos ## user locahost o 127.0.0.1 ## -d nombre de la base de datos ## -o carpeta destino ## en este comando vamos a crear un respaldo de todas las colecciones de nustra db ## si queremos respaldar solo una colleccion podemos agregar el parametro ## -c user ## si queremos respaldar solo algunos datos de nuestra coleccion podemos agregar el ## siguiente parametro -q "{active : true }" ó --query "{ active : true}" ## revisar documentación en https://docs.mongodb.com/manual/reference/program/mongodump/ mongodump -h "my host or locahost" -d mydb -o $DEST ## ejecutamos nuestro comando para subir la carpeta a s3 igual podemos hacer un zip y subir solo el ## archivo comprimido aws s3 --region us-west-2 sync $DEST s3://$BUCKET/db_backups/$DIR ## eliminamos nuestra carpeta (opcional) ##rm -rf $DEST; |
Ahora solo debemos ejecutar el siguiente comando para correr nuestro script
sudo sh dump.sh |
En nuestro siguiente post veremos como crear un cron job para realizar respaldos automaticos 1 o más veces al día.