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


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


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

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

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>

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


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

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


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

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"


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


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.


2

exporter

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

importer

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

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


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 !!!!!

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.


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

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

0

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


-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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.