Comment créer un vidage MongoDB de ma base de données?

163

Quelle commande dois-je utiliser et exécuter?

TIMEX
la source
Juste un single mongodumpsans aucun drapeau et vous obtenez un dossier de vidage
Ivan Aracki

Réponses:

82

Utilisez mongodump:

$ ./mongodump --host prod.example.com
connected to: prod.example.com
all dbs
DATABASE: log    to   dump/log
        log.errors to dump/log/errors.bson
                713 objects
        log.analytics to dump/log/analytics.bson
                234810 objects
DATABASE: blog    to    dump/blog
        blog.posts to dump/log/blog.posts.bson
                59 objects
DATABASE: admin    to    dump/admin

Source: http://www.mongodb.org/display/DOCS/Import+Export+Tools

Earldouglas
la source
4
Pour mettre les résultats dans un seul fichier compressé, voir unix.stackexchange.com/questions/93139
Donal Lafferty
Sur le serveur mongodb à quel endroit la base de données sera-t-elle stockée?
space earth
157

Pour vider votre base de données pour la sauvegarde, vous appelez cette commande sur votre terminal

mongodump --db database_name --collection collection_name

Pour importer votre fichier de sauvegarde sur mongodb, vous pouvez utiliser la commande suivante sur votre terminal

mongorestore --db database_name path_to_bson_file
saimadhu.polamuri
la source
2
Quelle est la signification de metadata.json pour la restauration?
Nabin
103

Vous pouvez également utiliser gzippour 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

Mise à jour:
sauvegardez toutes les collections d'une base de données dans un dossier de dates. Les fichiers sont gzipés:

mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`

Ou pour une seule archive:

mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz

Ou lorsque mongodb s'exécute dans docker:

docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
r03
la source
1
dit: ERREUR: je ne sais pas quoi faire avec le fichier! Gunizpped et essayé `mongorestore --db db_name 'gunzipped file'
amitchhajer
2
faute de frappe: "-db" => "--db"
Vivien
7
Dans la version 3.2 mongodumpou supérieure, vous pouvez utiliser l' --gzipoption pour faire cela: mongodump_manpage et même option pour mongorestore
Boop
1
@Pyrejkee, mieux vaut poser de nouvelles questions pour ces choses plutôt qu'un commentaire. (la date sur Windows est très différente)
r03
68

Cette commande effectuera un vidage de la base de données donnée au format json et bson.

mongodump -d <database name> -o <target directory>
jatin
la source
14

Il existe un utilitaire appelé: mongodump Sur la ligne de commande mongo, vous pouvez taper:

>./mongodump

Ce qui précède va créer un vidage de toutes les bases de données sur votre hôte local. Pour effectuer le vidage d'une seule collection, utilisez:

./mongodump --db blog --collection posts

Jetez un oeil à: mongodump

aditya_gaur
la source
11

Vous devez ouvrir l'invite de commande en tant qu'administrateur dans un dossier où votre Mongo est installé (dans mon cas: C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin). Si vous souhaitez vider toute votre base de données, vous pouvez simplement utiliser:

mongodump --db database_name

Vous avez également la possibilité de vider uniquement certaines collections, ou de vider toutes les collections sauf certaines.

Si vous souhaitez vider une seule collection (par exemple des utilisateurs):

mongodump  --db database_name --collection users

Si vous voulez vider tout sauf la collection des utilisateurs:

mongodump  --db database_name --excludeCollection=users

Il est également possible de sortir le vidage dans un fichier archive:

mongodump --archive=test.archive --db database_name
Jery
la source
10

Sauvegarde / restauration de Mongodb avec minutage.

Sauvegarde:

sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`

--db argument pour le nom de la base de données

--out argument pour le chemin de la sortie

Restaurer:

sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/

--drop argument pour supprimer la base de données avant la restauration

Horaire:

Vous pouvez utiliser crontab pour la sauvegarde de la synchronisation:

sudo crontab -e

Il s'ouvre avec l'éditeur (par exemple nano)

3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`

sauvegarde tous les jours à 03h03

En fonction de la taille de votre base de données MongoDB, vous risquez bientôt de manquer d'espace disque avec trop de sauvegardes. C'est pourquoi il est également recommandé de nettoyer régulièrement les anciennes sauvegardes ou de les compresser. Par exemple, pour supprimer toutes les sauvegardes datant de plus de 7 jours, vous pouvez utiliser la commande bash suivante:

3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;

supprimer toutes les sauvegardes de plus de 7 jours

Bonne chance.

réf: https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04

ShahRokh
la source
8

Vous pouvez vider votre base de données et restaurer avec la commande ci-dessous

mongodb  -d <Your_db_name> -o <path of your folder>

par exemple le nom de ma base de données suit j'ai un vidage dans le dossier de vidage

mongodb  -d tracking -o dump

Restauration du vidage

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking
Nanhe Kumar
la source
8

La commande suivante se connecte au serveur distant pour vider une base de données:

<> les paramètres facultatifs les utilisent si vous en avez besoin

  • hôte - port du nom d'hôte
  • nom d'utilisateur du port d'écoute
  • nom d'utilisateur de db db
  • nom de la base de données ssl
  • connexion sécurisée
  • sortie vers un dossier créé avec un nom

    mongodump --host --port --username --db --ssl --password --out _date + "% Y-% m-% d"

Michael Horojanski
la source
Pour ceux qui obtiennent cette erreur après avoir exécuté les options de ligne de commande d'analyse des erreurs de requête suggérées ci-dessus: option inconnue "ssl". Essayez d'exécuter la requête ci-dessus après avoir supprimé --ssl. cela a fonctionné pour moi, merci.
Anurag_BEHS
4

cmd ->

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Arnav
la source
1
Option facile et rapide
Ignacio Ara
Merci beaucoup Arnav, vraiment apprécié.
HassanSh__3571619
2

Si votre base de données dans le système local. Ensuite, vous tapez la commande ci-dessous. pour terminal Linux

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

Si l'utilisateur de la base de données et le mot de passe sont là, vous code ci-dessous.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD

Cela a très bien fonctionné dans mon terminal Linux.

Pooja Khatri
la source
2

exporter

mongodump -d <database name> <backup-folder>

importer

mongorestore -d <database name> <backup-folder>
Fayaz
la source
1

La commande ci-dessous fonctionnera pour prendre le vidage de mongo db.

mongodump -d -o

Sous Windows: essayez celui-ci où c: \ mongodump est l'emplacement du fichier de vidage, il créera des métadonnées en json et une sauvegarde au format bson

C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump

Bhasker le navigateur
la source
0

Ou vous pouvez créer un script de sauvegarde sur Windows, n'oubliez pas d'ajouter Winrar à% PATH%

bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"

#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!
user956584
la source
0

Mongo dump et restaure avec uri en local

mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL

Si vous ne spécifiez pas --colletion COLLECTION_NAME, il videra toute la base de données.

smartworld-dm
la source
0

prenez une sauvegarde mongodb pour une base de données particulière et supprimez la sauvegarde vieille de 7 jours à l'aide de la commande bin sh: -

#!/bin/bash

MONGO_DATABASE="nexgtv_16"
APP_NAME="test"
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/mongodbbackups/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
$MONGODUMP_PATH -d $MONGO_DATABASE
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME
find /home/mongodbbackups/backups/test/ -mindepth 1 -mtime +7 -delete
manoj tiwari
la source
0
 Use -v to see progress of backup data
    mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData

 you can use it for restore also
    mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname

with multile v like -vvvv you will get more information
Nivrutti
la source
0

utilisez "chemin" pour Windows. Sinon, cela donne l'erreur comme: arguments de position non autorisés

yogesh chavan
la source
-4

mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out / chemin / dossier

mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out /chemin/folder.gz

Anjankumar HN
la source
1. mongodump - est une commande pour créer un vidage mongo avec nous avons besoin d'une entrée sur la spécification. 2. -h représente votre nom d'hôte mongodb. 3. -u représente votre nom d'utilisateur mongodb. 4. -p représente le mot de passe. 5. --db représente le nom de la base de données dont nous avons besoin pour effectuer un vidage. 6. --port représente le port que votre mongo exécute. 7. --out représente la destination de votre vidage avec son nom.
Anjankumar HN