Answers:
用途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
来源:http : //www.mongodb.org/display/DOCS/Import+Export+Tools
要转储数据库以进行备份,请在终端上调用此命令
mongodump --db database_name --collection collection_name
要将备份文件导入到mongodb中,可以在终端上使用以下命令
mongorestore --db database_name path_to_bson_file
您还可以gzip
用于备份一个集合并动态压缩备份:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
或文件名中带有日期:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
更新:
在日期文件夹中备份数据库的所有集合。这些文件已压缩:
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
有一个实用程序:mongodump在mongo命令行上,您可以输入:
>./mongodump
上面的代码将创建本地主机上所有数据库的转储。要转储单个集合,请使用:
./mongodump --db blog --collection posts
看看:mongodump
您需要以管理员身份在安装Mongo的文件夹中打开命令提示符(在我的情况下为C:\ Program Files \ MongoDB \ Server \ 3.4 \ bin)。如果要转储整个数据库,则可以使用:
mongodump --db database_name
您还可以仅转储某些集合,或转储除某些集合以外的所有集合。
如果您只想转储一个集合(例如用户):
mongodump --db database_name --collection users
如果要转储除用户集合之外的所有集合:
mongodump --db database_name --excludeCollection=users
也可以将转储输出到存档文件:
mongodump --archive=test.archive --db database_name
定时备份/还原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
它以编辑器(例如nano)打开
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
以下命令连接到远程服务器以转储数据库:
<>可选参数在需要时使用它们
输出到具有名称的已创建文件夹
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
如果您的数据库在本地系统中。然后,键入以下命令。用于Linux终端
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
如果数据库用户和密码在那里,那么您将在下面的代码中进行操作。
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
这在我的Linux终端中非常有效。
下面的命令将对mongo db进行转储。
mongodump -d -o
在Windows上:尝试在c:\ mongodump是转储文件位置的位置执行此操作,它将创建json中的元数据,并以bson格式进行备份
C:\ MongoDB \ bin> mongodump -d -oc:\ mongodump
Mongo转储并使用uri还原到本地
mongodump --uri“ mongodb:// USERNAME:PASSWORD @ IP_OR_URL:PORT / DB_NAME” --collection COLLECTION_NAME -o LOCAL_URL
如果不指定--colletion COLLECTION_NAME,它将转储整个数据库。
为特定的数据库进行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
mongodump -h主机名-u dbusername -p dbpassword –db dbname –port端口号–out / path / folder
mongodump -h主机名-u dbusername -p dbpassword –db dbname –port端口号–out /path/folder.gz
mongodump
没有任何标志的单个文件,您会获得转储文件夹