我应该使用什么命令来创建我的数据库的MongoDB转储?


使用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 +出口+工具


有一个实用程序叫做:mongodb 在mongo命令行中,你可以输入:

>./mongodump

上面的操作将创建本地主机上所有数据库的转储。要转储单个集合,使用:

./mongodump --db blog --collection posts

看看:mongodb


你也可以使用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

此命令将以json和bson格式转储给定的数据库。

mongodump -d <database name> -o <target directory>

要转储数据库进行备份,可以在终端上调用此命令

mongodump --db database_name --collection collection_name

要将备份文件导入mongodb,可以在终端上使用以下命令

mongorestore --db database_name path_to_bson_file

或者你可以在Windows上做备份脚本,记得将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 !!!!!

对特定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

下面的命令将工作,采取mongo db转储。

mongodb -d -o

在Windows上:试试这个,其中c:\ mongodb是转储文件的位置, 它将创建json格式的元数据,并以bson格式进行备份

C:\MongoDB\bin> MongoDB -d -o


mongodb -h hostname -u dbusername -p dbpassword——db dbname——port portnumber——out /路径/文件夹

mongodb -h hostname -u dbusername -p dbpassword——db dbname——port portnumber——out /path/folder.gz


您需要以管理员身份打开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

下面的命令连接到远程服务器来转储数据库:

<>可选参数在需要时使用它们

Host -主机名端口 监听端口用户名 db用户名db 数据库名称SSL 安全连接出去 输出到已创建的带名称的文件夹中 mongodb——host——port——username——db——ssl——password——out _date+"%Y-%m-%d"


cmd - - - >

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest

您可以转储数据库并使用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

Mongo转储和恢复与uri到本地

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

省略——collection COLLECTION_NAME将转储整个DB。


定时备份/恢复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


 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

在Windows中使用“path”,否则会给出错误:位置参数不允许


如果数据库在本地系统中。然后您可以键入下面的命令。 Linux终端

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

如果数据库有用户名和密码,那么你可以使用下面的代码。

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

这在我的Linux终端上运行得非常好。


编辑:根据MongoDB v4.4.2最新版本更新的命令

出口

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

进口

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