我应该使用什么命令来创建我的数据库的MongoDB转储?
当前回答
有一个实用程序叫做:mongodb 在mongo命令行中,你可以输入:
>./mongodump
上面的操作将创建本地主机上所有数据库的转储。要转储单个集合,使用:
./mongodump --db blog --collection posts
看看:mongodb
其他回答
对特定db进行mongodb备份,使用bin sh命令删除7天前的备份
#!/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
您可以转储数据库并使用bellow命令进行恢复
mongodb -d <Your_db_name> -o <path of your folder>
例如,我的数据库名称是跟踪,我有转储在转储文件夹
mongodb -d tracking -o dump
恢复转储
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking
定时备份/恢复Mongodb。
备份:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
——db参数作为数据库名
输出路径的——out参数
恢复:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
——drop参数用于在恢复前删除数据库
时间:
您可以使用crontab进行定时备份:
sudo crontab -e
它以编辑器打开(例如:纳米)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
每天凌晨03:03备份
根据您的MongoDB数据库大小,您可能很快就会耗尽磁盘 备份太多的空间。这就是为什么也建议清洗 定期或压缩旧备份。例如,删除 所有超过7天的备份都可以使用下面的bash 命令:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
删除超过7天的所有备份
祝你好运。
裁判: https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04
你也可以使用gzip备份一个集合,并在运行中压缩备份:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
或者在文件名中加上日期:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
更新: 在date文件夹中备份数据库的所有集合。文件被gzip压缩:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
或者对于单个存档:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
或者mongodb在docker内部运行时:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
有一个实用程序叫做:mongodb 在mongo命令行中,你可以输入:
>./mongodump
上面的操作将创建本地主机上所有数据库的转储。要转储单个集合,使用:
./mongodump --db blog --collection posts
看看:mongodb