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  |