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:
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.
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
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
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.
mongodump --Host remotehostip:port --db dbname -u username -p password
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”
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