name how from example different and mongodb meteor mongodump mongorestore

mongodb - how - Mongorestore, desde servidor de producción de meteoros a local.



mongorestore folder path (6)

Esto es lo que hago:

I. Crear un volcado de mongo en el servidor.

DATE=$(date +%m%d%y_%H.%M); mongodump --host localhost -d APPNAME -o /tmp/APPNAME_$DATE tar -cjvvf /tmp/APPNAME_$DATE.tar.bz2 /tmp/APPNAME_$DATE

II. Descargue el volcado en la máquina de desarrollo y descomprima en / tmp

scp root@$HOST:/tmp/APPNAME_$DATE.tar.bz2 /tmp/ cp /tmp/APPNAME_$DATE.tar.bz2 . mkdir -p /tmp/APPNAME_$DATE cd /tmp/APPNAME_$DATE tar -xjvf /tmp/APPNAME_$DATE.tar.bz2

III. Actualizar la base de datos de desarrollo de meteoros local

mongorestore --db meteor -h localhost --port 8082 --drop /tmp/APPNAME_$DATE/tmp/APPNAME_$DATE/APPNAME

He encontrado un montón de buenas instrucciones sobre cómo usar mongodump y mongorestore, para hacer una copia de seguridad de mi servidor de producción de meteoritos y restaurar la copia de seguridad si es necesario:

meteor mongo --url myApp.meteor.com mongodump -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com -out dump/2014_10_21 -p [password from meteor mongo --url] mongorestore -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com dump/2014_10_21_v2/myApp_meteor_com -p [password from meteor mongo --url]

Lo que no he encontrado es una explicación de cómo restaurar un volcado de respaldo a mi aplicación meteorológica local. Tengo una salida mongodump en mi carpeta de aplicaciones. No estoy seguro de si puedo usar mongorestore o si hay algo más que se supone que debo hacer.


Estoy usando Google Cloud para el alojamiento de Meteor y escribí scripts personalizados.

Tengo esto funcionando en un cronjob para hacer una copia de seguridad al almacenamiento en la nube de Google:

https://github.com/markoshust/mongo-docker-backup-gcloud/blob/master/mongobackup.sh

#!/bin/bash MONGO_DB=dbname MONGO_HOST=127.0.0.1 HOST_DIR=/home/YOURNAME BACKUP_DIR=/mongobackup BUCKET=gs://BUCKET_NAME DATE=`date +%Y-%m-%d:%H:%M:%S` /usr/bin/docker run --rm / -v $HOST_DIR/$BACKUP_DIR:$BACKUP_DIR / markoshust/mongoclient / mongodump --host $MONGO_HOST --db $MONGO_DB --out $BACKUP_DIR sudo mkdir -p $HOST_DIR/$BACKUP_DIR/$MONGO_DB/$DATE sudo mv $HOST_DIR/$BACKUP_DIR/$MONGO_DB/* $HOST_DIR/$BACKUP_DIR/$MONGO_DB/$DATE $HOST_DIR/gsutil/gsutil rsync -r $HOST_DIR/$BACKUP_DIR $BUCKET sudo /bin/rm -rf $HOST_DIR/$BACKUP_DIR

Luego, para restaurar localmente, creé otro script que descarga la copia de seguridad del almacenamiento en la nube de Google, almacena localmente, luego realiza una restauración local

https://github.com/markoshust/mongorestore.sh/blob/master/.mongorestore.sh

#!/bin/bash ## This script syncs a mongodb backup from a Google Cloud Storage bucket and ## mongorestore''s it to a local db. ## ## Author: Mark Shust <[email protected]> ## Version: 1.1.0 BUCKET=my-bucket-name FOLDER=folder-name/$1 BACKUP_DIR=./.backups/ DB_NAME=localdb DB_HOST=localhost DB_PORT=27017 if [ -z $1 ]; then echo ''Please specify a subdirectory to sync from...'' exit 0 fi mkdir -p $BACKUP_DIR if [ ! -d $BACKUP_DIR ]; then gsutil -m cp -r gs://$BUCKET/$FOLDER $BACKUP_DIR fi mongorestore --db $DB_NAME -h $DB_HOST --port $DB_PORT --drop $BACKUP_DIR/$1/ echo ''Database restore complete.''

Tengo este trabajo con Meteor, estúpido simple y funciona muy bien :) Simplemente cambie el nombre de db a meteor y el puerto a 3001 (o cualquier configuración que tenga). Es meteorológico, por lo que funciona con cualquier host / plataforma mongodb.


La forma más fácil que encontré:

  1. cd en tu proyecto y ejecuta el comando meteor
  2. en otra terminal:

mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/meteor

cambie 127.0.0.1 si su host local tiene una dirección IP diferente y 3001 a un puerto en el que tiene mongodb (normalmente es 3001 o 3002 , entonces intente ambos), dump/meteor es el camino a un volcado que creó anteriormente.

También la forma más fácil de exportar db local:

  1. cd en tu proyecto y ejecuta el comando meteor
  2. En otra terminal:

mongodump -h 127.0.0.1 --port 3001 -d meteor

de nuevo, cambie el ip localhost y el puerto si es necesario. . Como resultado, la carpeta dump / meteor con archivos db se creará en la carpeta que cd antes de ejecutar mongodump .

Buena suerte.


Para lograr lo contrario, al enviar datos de aplicaciones locales a aplicaciones de producción, escribí este pequeño script de shell. Ha sido útil mientras estoy desarrollando localmente y solo estoy sincronizando la demostración para que la vea el cliente. Tenga en cuenta que tiene - --drop al final que sobrescribirá su base de datos de producción, --drop con cuidado!

Se ocupa de los datos del cliente, pw y del servidor de meteor mongo --url ... que meteor mongo --url ... después de 1 minuto y es realmente molesto tratar de copiar y pegar dentro de ese tiempo.

#!/usr/bin/env bash mongodump -h 127.0.0.1:3001 -d meteor -o ~/www/APPNAME/server/dump IN=`meteor mongo --url APPNAME.meteor.com` client=`echo $IN | awk -F''mongodb://'' ''{print $2}'' | awk -F'':'' ''{print $1}''` echo $client pw=`echo $IN | awk -F'':'' ''{print $3}'' | awk -F''@'' ''{print $1}''` echo $pw serv=`echo $IN | awk -F''@'' ''{print $2}'' | awk -F''/'' ''{print $1}''` echo $serv mongorestore -u $client -h $serv -d APPNAME_meteor_com dump/meteor -p $pw --drop


Puedes usar mongorestore .

Es casi lo mismo que lo que ya hiciste.

En su primera línea: meteor mongo --url myApp.meteor.com simplemente quite la última parte para que la línea lea: meteor mongo --url . Cuando se ejecute en su máquina local, obtendrá la información para la instancia local de su aplicación de meteoros. Desde ese punto, puede usar mongorestore para restaurar su base de datos local de la manera que ya lo hizo de forma remota.

Solía meteor reset un meteor reset antes de un almacén de memoria, solo para asegurarme de que mi base de datos está vacía, pero no sé si es realmente necesario.

Tenga en cuenta que la aplicación debería estar ejecutándose al hacer esto.


Terminé escribiendo un script para descargar la base de datos de meteoritos. Compruébelo en https://github.com/AlexeyMK/meteor-download

Uso (en la raíz de su aplicación):

curl https://raw.github.com/AlexeyMK/meteor-download/master/download.sh > download.sh ./download.sh yourapp.meteor.com`