mongodumpmongorestorebsondumpmongoimportmongoexportmongostatmongotopmongofilesMongoDB工具 >MongoDB数据库工具 > mongodump
mongodump是用于创建数据库内容的二进制导出的实用程序。mongodump可以从mongod或mongos实例中导出数据;即可以从独立,副本集和分片群集部署中导出数据。
也可以看看
mongorestore 提供相应的二进制数据导入功能。
要连接到在端口27017上运行的本地MongoDB实例并使用默认设置导出内容,请在mongodump不使用任何命令行选项的情况下运行
:
要指定MongoDB实例的主机和/或端口,您可以:
在中指定主机名和端口:--uri connection string
在中指定主机名和端口--host:
要连接到副本集以导出其数据,您可以:
在中指定副本集名称和成员:--uri connection string
在中指定副本集名称和成员--host:
默认情况下,mongodump从副本集的主数据库读取。要覆盖默认值,可以指定读取首选项:
如果指定读取的首选项标签,请包括以下
readPreferenceTags选项:
您可以使用--readPreference命令行选项指定读取首
选项。如果仅指定读取首选项模式,则命令行选项采用字符串:
或者,命令行选项可以使用带引号的文档
来指定模式,可选的读取首选项标签集和可选的
maxStalenessSeconds:'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}'
要连接到分片群集以导出其数据,您可以:
在中指定mongos实例
的主机名--uri connection string
默认情况下,mongodump从分片副本集的主数据库读取。要覆盖默认值,可以指定读取首选项:
如果指定读取的首选项标签,请包括以下
readPreferenceTags选项:
您可以使用--readPreference命令行选项指定读取首
选项。如果仅指定读取首选项模式,则命令行选项采用字符串:
或者,命令行选项可以使用带引号的文档
来指定模式,可选的读取首选项标签集和可选的
maxStalenessSeconds:'{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds: <num>}'
也可以看看
默认情况下,mongodump使用read preference
primary。要覆盖默认值,可以在
命令行选项或中指定
读取首--readPreference选项。--uri connection string
如果在URI字符串和--readPreference
选项中均指定了读取首
选项,则该--readPreference
值将覆盖URI字符串中指定的读取首选项。
mongodumplocal在其输出中排除数据库的内容。
mongodump输出仅捕获数据库中的文档,不包括索引数据。mongorestore
或mongod必须在还原数据后重建索引。
如果使用只读视图,则
mongodump仅捕获视图的元数据:它不会创建视图中包含的文档的二进制导出。要捕获视图中的文档,请使用
--viewsAsCollections。
mongodump对元数据文件使用扩展的JSON v2.0(规范)格式。要解析这些文件以进行还原,请使用mongorestore,该文件
支持扩展JSON v2.0(规范或轻松模式)格式。
小费
在一般情况下,使用相应的版本mongodump
和mongorestore。也就是说,要还原使用特定版本创建的数据文件mongodump,请使用的相应版本mongorestore。
mongodump如果备份文件文件夹中存在输出文件,则它们将被覆盖。在mongodump多次运行命令之前,请确保不再需要输出文件夹中的文件(默认为dump/文件夹),或者重命名文件夹或文件。
当针对mongod使用WiredTiger存储引擎的实例
运行时,
mongodump输出未压缩的数据。
mongodump自动创建符合FIPS的连接到一个mongod/ mongos被
配置为使用FIPS模式。
对于独立集或副本集,mongodump可以作为备份策略的一部分,其中
mongorestore包括基于查询,从生产到暂存或开发环境的同步或更改独立存储引擎的部分备份。
有关mongodump结合
mongorestore部分备份和恢复策略的概述,请参阅:
mongodump并且不能作为正在进行分片事务的4.2+分片群集的备份策略的一部分,因为使用创建的备份
不能保持分片事务的原子性保证。mongorestore
mongodump
对于具有正在进行中的分片事务的4.2+分片群集,请使用以下协调的备份和还原过程之一,该过程 确实维护了跨分片事务的原子性保证:
mongodump¶--help¶返回有关mongodump选项和用法的信息。
--verbose, -v¶增加标准输出或日志文件中返回的内部报告的数量。-v通过多次包含选项来增加详细程度(例如)-vvvvv。
--version¶返回mongodump版本号。
--uri=<connectionString>¶指定可解析的URI 连接字符串(用引号引起来)以连接到MongoDB部署。
有关连接字符串的组成部分的信息,请参阅“ 连接字符串URI格式”文档。
注意
对于TLS / SSL选项,请使用命令行选项代替TLS / SSL的 URI选项(从4.2开始可用)。
--host=<hostname><:port>, -h=<hostname><:port>¶默认值:本地主机:27017
指定mongod要连接的主机名称。默认情况下,mongodump尝试连接到端口号为localhost上运行的MongoDB实例27017。
要连接到副本集,请指定replSetName集合成员的
和种子列表,如下所示:
指定副本集列表格式时,mongodump始终连接到primary。
您还可以通过仅指定该成员的主机和端口来连接到副本集的任何单个成员:
如果使用IPv6并使用<address>:<port>格式,则必须将地址和端口组合的一部分括在方括号(例如[<address>])中。
另外,当与选项一起使用时,您也可以直接在URI连接字符串中指定主机名
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongodump--host--uri
--port=<port>¶默认值:27017
指定MongoDB实例在其上侦听客户端连接的TCP端口。
另外,当与选项一起使用时,您也可以直接在URI连接字符串中指定端口
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongodump--port--uri
--ssl¶启用与mongod或mongos已启用TLS / SSL支持的连接。
另外,当与选项一起使用时,您也可以直接在URI连接字符串中配置TLS / SSL支持
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongodump--ssl--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCAFile=<filename>¶指定.pem包含来自证书颁发机构的根证书链的文件。.pem使用相对或绝对路径指定文件的文件名
。
另外,当与选项一起使用时,您也可以.pem直接在URI连接字符串中指定文件
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongodump--sslCAFile--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyFile=<filename>¶指定.pem同时包含TLS / SSL证书和密钥的文件。.pem使用相对或绝对路径指定文件的文件名。
使用--ssl选项连接到mongod或mongos已
CAFile启用而未
启用时,此选项是必需的allowConnectionsWithoutCertificates。
另外,当与选项一起使用时,您也可以.pem直接在URI连接字符串中指定文件
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongodump--sslPEMKeyFile--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslPEMKeyPassword=<value>¶指定用于解密证书密钥文件的密码(即
--sslPEMKeyFile)。--sslPEMKeyPassword仅当证书密钥文件已加密时才使用该选项。在所有情况下,mongodump都会从所有日志记录和报告输出中删除密码。
如果PEM文件中的私钥已加密并且您未指定该--sslPEMKeyPassword选项,则mongodump将提示您输入密码。请参阅
TLS / SSL证书密码。
另外,当与选项一起使用时,也可以直接在URI连接字符串中指定密码
。一起使用
和选项并指定有冲突的信息将导致错误。--urimongodump--sslPEMKeyPassword--uri
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslCRLFile=<filename>¶指定.pem包含证书吊销列表的文件。.pem使用相对或绝对路径指定文件的文件名。
有关TLS / SSL和MongoDB的更多信息,请参阅 为客户端的TLS / SSL和 TLS / SSL配置配置mongod和mongos。
--sslAllowInvalidCertificates¶绕过服务器证书的验证检查,并允许使用无效的证书。使用该
allowInvalidCertificates设置时,MongoDB将使用无效证书记录为警告。
警告
尽管可用,但请避免使用该
--sslAllowInvalidCertificates选项。如果必须使用--sslAllowInvalidCertificates,请仅在不可能进行入侵的系统上使用该选项。
在不验证服务器证书的情况下连接到mongod或
mongos实例具有潜在的安全风险。如果仅需要禁用TLS / SSL证书中的主机名验证,请参阅--sslAllowInvalidHostnames。
另外,当与选项一起使用时,您也可以直接在URI连