Vamos a ver como crear una copia de seguridad de nuestra base de datos MongoDB en una instancia de Openshift y descargar esta copia a nuestro equipo local.
Lo primero es conectar por SSH a nuestra aplicación en Openshift:
1 |
rhc ssh nombre-app |
Dentro de la instancia ejecutamos los siguientes comandos:
1 2 3 4 |
cd app-root/repo mongodump --host $OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT --username $OPENSHIFT_MONGODB_DB_USERNAME --password $OPENSHIFT_MONGODB_DB_PASSWORD zip -r dump.zip dump rm -rf dump/ |
Con esto ya tenemos la copia de seguridad creada, en el fichero “dump.zip“, ahora solo queda descargar este fichero a nuestro equipo y luego eliminarlo de la instancia. En nuestro equipo local ejecutamos lo siguiente:
1 |
rhc scp nombre-app download ./ app-root/repo/dump.zip |
Nota: En el caso de que necesitemos subir un fichero, el comando es el mismo pero sustituyendo “download” por “upload”.
Y luego dentro de la instancia de Openshift eliminamos el fichero:
1 2 |
rm dump.zip exit |
Restaurar copia de seguridad en una instalación local
Para restaurar la copia creada anteriormente, en una base de datos MongoDB local, descomprimimos el fichero “dump.zip” (unzip dump.zip) y ejecutamos el siguiente comando:
1 |
mongorestore --db nombre-base-de-datos ./dump/nombre-app/ |
Nota: dump.zip contiene dos carpetas, una con el nombre de la aplicación y otra con el nombre “admin”, solo nos interesa la carpeta con el nombre de la aplicación.
En el caso de que nuestra bade de datos local esté protegida con usuario y contraseña:
1 |
mongorestore --host localhost:27017 --username USER --password PASSWORD --authenticationDatabase admin --db nombre-base-de-datos ./dump/nombre-app/ |
Podemos hacer lo mismo con una sola colección, tanto en mongodump como en mongorestore usamos los parametros -d y -c:
1 |
mongodump -d base-de-datos -c coleccion |
Y para restaurarlo:
1 |
mongorestore -d base-de-datos -c coleccion dump/coleccion.bson |
Si queremos subir este fichero de colección a otro servidor web usamos el siguiente comando:
1 |
scp coleccion.bson usuario@dominio.com:/home/usuario |