Réponses:
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
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
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
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
mongodump
ou supérieure, vous pouvez utiliser l' --gzip
option pour faire cela: mongodump_manpage et même option pour mongorestore
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
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
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.
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
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
sortie vers un dossier créé avec un nom
mongodump --host --port --username --db --ssl --password --out _date + "% Y-% m-% d"
cmd ->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
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.
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
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 !!!!!
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.
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
utilisez "chemin" pour Windows. Sinon, cela donne l'erreur comme: arguments de position non autorisés
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
mongodump
sans aucun drapeau et vous obtenez un dossier de vidage