Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何创建数据库的MongoDB转储?_Database_Mongodb_Database Dump - Fatal编程技术网

Database 如何创建数据库的MongoDB转储?

Database 如何创建数据库的MongoDB转储?,database,mongodb,database-dump,Database,Mongodb,Database Dump,我应该使用和运行什么命令?使用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.b

我应该使用和运行什么命令?

使用
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

来源:

有一个名为:mongodump的实用程序 在mongo命令行上,您可以键入:

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

./mongodump --db blog --collection posts

查看:

您还可以使用
gzip
对一个集合进行备份并动态压缩备份:

mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
或者文件名中有日期:

mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
更新:
备份日期文件夹中数据库的所有集合。这些文件是gziped:

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
docker exec sh-c'exec mongodump--db somedb--gzip--archive'>dump_`date“+%Y-%m-%d”`.gz

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

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

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

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

为特定数据库进行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的转储

mongodump-d-o

在Windows上:在c:\mongodump是转储文件位置的情况下尝试此操作, 它将以json格式创建元数据,并以bson格式进行备份

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


mongodump-h hostname-u dbusername-p dbpassword--db dbname--port portnumber--out/path/folder


mongodump-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 --excludeCollection=users
也可以将转储输出到存档文件:

mongodump --archive=test.archive --db database_name

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

如果需要,可选参数将使用它们

  • 主机-主机名端口
  • 侦听端口用户名
  • 数据库的用户名
  • 数据库名称ssl
  • 安全连接输出
  • 输出到具有名称的已创建文件夹

    mongodump--主机--端口--用户名--数据库--ssl--密码--过期日期+%Y-%m-%d

cmd-->


您可以使用下面的命令转储数据库并进行恢复

mongodb  -d <Your_db_name> -o <path of your folder>
恢复转储

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking
mongorestore-d
mongorestore-d跟踪转储/跟踪

Mongo使用uri将转储和还原到本地

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

省略--collection collection\u NAME将转储整个数据库。

定时备份/恢复Mongodb

备份:

sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--db
数据库名称的参数

--out
输出路径的参数

恢复:

sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--还原前删除数据库的drop
参数

计时:

sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
您可以使用crontab定时备份:

sudo crontab -e
它通过编辑器打开(如nano)

每天凌晨3:03备份

根据MongoDB数据库的大小,您可能很快就会用完磁盘 备份过多的空间。这就是为什么也建议清洁 定期或压缩旧备份。例如,删除 所有早于7天的备份都可以使用以下bash 命令:

删除所有早于7天的备份

祝你好运

参考:

在windows中使用“路径”,否则会出现以下错误:如果您的数据库位于本地系统中,则不允许使用位置参数。然后键入下面的命令。 用于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>
mongodump-d-o
导入

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

显示:错误:不知道如何处理文件!Gunizzed并尝试了“MongoStore--db db_name”gunzipped file”打字:“-db”=>“--db”在
mongodump
或更高版本中,您可以使用
--gzip
选项来实现这一点:对于@Pyrejkee:@Pyrejkee,同样的选项,最好针对这些问题提出新的问题,而不是评论。(windows上的日期非常不同)要将结果放在单个压缩文件中,请参阅mongodb服务器上的数据库存储位置?请参阅此链接@太空地球1号。mongodump-是一个用于创建mongo转储的命令,我们需要有关规范化的输入。2. -h表示您的mongodb主机名。3. -u代表您的mongodb用户名。4. -p代表佩剑。5. --db表示我们需要转储的数据库名。6. --port表示mongo正在运行的端口。7. --out表示名为的转储的目标。metadata.json对还原有什么意义?只需一个
mongodump
,不带任何标志,运行上述建议的查询-错误解析命令行选项:未知选项“ssl”后,您将获得dump folder,供出现此错误的用户使用。尝试在删除--ssl后运行上述查询。这对我很有效。谢谢。简单快捷的选项非常感谢Arnav,非常感谢。我们如何用一个命令恢复所有集合(bson文件)?使用此命令恢复所有集合-mongorestore--db
mongodump -d <database name> -o <backup-folder>
mongorestore -d <database name> --dir <backup-folder>