web-dev-qa-db-fra.com

Mongodump depuis un serveur distant

Nous avons récemment transféré certaines données vers MongoDB et nous envisageons maintenant d'exécuter des sauvegardes quotidiennes, de préférence à partir d'un travail cron, et de restaurer l'une des sauvegardes dans une base de données mongo secondaire.

Notre système est configuré comme suit:

  • serveur 1: la base de données mongo de développement
  • serveur 2: deux bases de données mongo, une pour le transfert des données et une pour la production
  • serveur 3: c'est là que nous exécutons tous nos travaux cron/scripts batch.

J'ai vérifié les documents mongo et me suis connecté à notre serveur de tâches cron et j'ai essayé d'exécuter la commande suivante: (nom d'utilisateur, hôte et mot de passe modifiés pour des raisons de sécurité, je ne me connecte pas réellement à localhost)

mongodump --Host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1

Je reçois les messages suivants:

7 oct. 10:03:42 démarrage du nouveau moniteur de jeu de répliques pour le jeu de répliques 127.0.0.1 avec graine de développement: 27017
7 octobre 10 h 03 min 42 s connecté avec succès au développement de la graine: 27017 pour le jeu de répliques 127.0.0.1
Lun. 7 oct. 10:03:42 avertissement: noeud: développement: 27017 ne fait pas partie de l'ensemble: 127.0.0.1 ismaster: {ismaster: true, maxBsonObjectSize: 16777216, ok: 1.0}
Mon Oct 7 10:03:44 moniteur de jeu de réplicas pour le jeu de répliques 127.0.0.1 démarré, l'adresse est 127.0.0.1/
Lun. 7 oct. 10:03:44 [ReplicaSetMonitorWatcher] le démarrage n'a pas pu se connecter à [127.0.0.1/development:27017] la connexion n'a pas pu définir 127.0.0.1/development:27017

J'ai confirmé que je peux me connecter à la base de données mongo en utilisant mongo -u -p ip/development

Notre objectif ultime sera de vider les données de la base de données de production et de les stocker dans la base de données intermédiaire. Ces deux bases de données sont situées sur la même boîte, si cela fait une différence, mais à des fins de test, j'essaie simplement d'obtenir une sauvegarde des données de test de développement.

34
awestover89

mongo le client peut analyser chaîne de connexion MongoDB URI , donc au lieu de spécifier tous les paramètres de connexion séparément, vous pouvez passer une chaîne de connexion URI unique.

Dans votre cas, vous essayez de transmettre l'URI de connexion en tant que Host, mais 127.0.0.1/development n'est pas un nom d'hôte valide. Cela signifie que vous devez spécifier le paramètre database séparément du Host:

mongodump --Host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1
56


Cela a fonctionné pour moi.

Référence: https://docs.mongodb.com/manual/reference/program/mongodump


Syntaxe 1:

mongodump --Host <hostname:port> --db <database> --username <username> --password <password> --out <path>

Syntaxe 2:

mongodump -h <hostname:port> -d <database> -u <username> -p <password> -o <path>



Exemple 1:

mongodump --Host 127.0.0.1:27017 --db db_app --username root --password secret --out /backup/db/app-17-03-07

Exemple 2:

mongodump -h 127.0.0.1:27017 -d db_app -u root -p secret -o /backup/db/app-17-03-07
14
Yves

Vous pouvez utiliser avec mongodump avec --uri

mongodump --uri "mongodb://usersname:[email protected]:27100/dbname?replicaSet=replica_name&authSource=admin" --out "C:\Umesh"

Toutes vos collections seront stockées dans le dossier out, il créera un nom de répertoire comme nom de votre base de données et toutes les collections sont bson et les métadonnées seront stockées au format json.

Pour restaurer

mongorestore --uri "mongodb://usersname:[email protected]:27100/dbname?replicaSet=replica_name&authSource=admin" -d dbname mongodbumppath

Essayez cela, cela fonctionnera.

5
Umesh Perl...
mongodump --Host remotehostip:port --db dbname -u username -p password
2
codewarrior

Voici un exemple d'exportation de collection d'un serveur de noeud vers une machine locale:

Host : xxx.xxx.xxx.xx
Port :27017
Username:”XXXX”
Password :”YYYY”
AuthDB : “admin”
“DB”: “mydb”

D:\mongodb-backup>mongodump -h xxx.xxx.xxx.xxx –port 27017 -u “XXXX” -p “YYYY” –authenticationDatabase “admin” –db “mydb”
1
abhi12335

Vous pouvez également utiliser gzip pour prendre la sauvegarde d'une collection et compresser la sauvegarde à la volée

mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz

Ou avec une date dans le nom du fichier:

mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
0
Ravi Tyagi