注意:从 MongoDB 4.4 之后,这些工具并没有随安装包一起发布,需要的用户自行下载,下载地址:https://www.mongodb.com/try/download/database-tools
mongorestore 程序从 mongodump 创建的二进制数据库转储或标准输入中加载数据中的数据。
用法:
mongorestore <options> <connection-string> <directory or file to restore>
将 mongodump 生成的备份还原到运行中的 MongoDB 服务器。
使用 -d 指定数据库,从目标目录中还原单个数据库、或使用 -d 和 -c 从单个 .bson 文件还原单个集合。
连接字符串必须以 mongodb:// 或 mongodb+srv:// 开头。
更多信息请参见 http://docs.mongodb.com/database-tools/mongorestore
--help 打印帮助信息
--version, -v 打印工具的版本信息且退出
--config=<filename> 新选项,100.3.0 版本。指定 YAML 配置文件的完整路径,该文件包含以下选项的敏感值:
--password
--uri
--sslPEMKeyPassword
推荐使用这种方式为 mongotop 指定密码,配置文件的格式如下:
password: <password> uri: mongodb://mongodb0.example.com:27017 sslPEMKeyPassword: <password>
注意,向 password: 字段指定密码并在 uri: 字段中提供包含冲突密码的连接字符串将导致错误。
请务必使用适当的文件系统权限保护此文件。
-v, --verbose:<level> 更详细的日志输出(包含多个次数以获得更多详细信息,如 -vvvvv,或指定一个数值,如 --verbose=N)
--quiet 以安静模式运行 mongotop,尝试限制输出量。该选项抑制:
数据库命令的输出
复制活动
连接接受事件
连接关闭事件
-h=<host><:port>, --host=<hostname><:port>
默认值:localhost:27017
指定 MongoDB 部署的可解析主机名。默认情况下,mongotop 会尝试连接到运行在 localhost 上、端口号为 27017 的 MongoDB 实例。
要连接到副本集,请指定 replSetName 和副本集成员的种子列表,如下所示:
--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
当指定副本集列表格式时,mongotop 总是连接到主服务器。
你也可以只指定副本集中任何一个成员的主机和端口,从而连接到该成员:
--host=<hostname1><:port>
如果使用 IPv6 并使用 <address>:<port> 格式,则必须用括号(例如 [<address>])括起地址和端口组合的部分。
或者,也可以直接在 URI 连接字符串中直接指定主机名。在提供连接字符串的同时使用 --host 的同时提供连接字符串,并指定相互冲突的信息将导致错误。
如果连接到一个副本集,而该副本集的主无法连接的副本集,mongotop 会返回错误信息。
--port=<port>
默认值:27017
指定 MongoDB 实例侦听客户端连接的 TCP 端口。
或者,也可以直接在 URI 连接字符串中直接指定端口。在提供连接字符串的同时使用 --port 的同时提供连接字符串并指定相互冲突的信息将导致错误。
--ssl 连接到已启用 ssl 的一个或多个 mongod 或 mongos
--sslCAFile=<filename> 包含证书颁发机构颁发的根证书链的 .pem 文件
--sslPEMKeyFile=<filename> 包含证书和密钥的 .pem 文件
--sslPEMKeyPassword=<password> 用于解密 sslPEMKeyFile 的密码(如有必要)
--sslCRLFile=<filename> 包含证书吊销列表的 .pem 文件
--sslFIPSMode 使用已安装的 openssl 库的 FIPS 模式
--sslAllowInvalidCertificates 绕过服务器证书的验证检查,允许使用无效证书。使用 allowInvalidCertificates 设置时,MongoDB 会将使用无效证书记录为警告。
--sslAllowInvalidHostnames 禁用 TLS/SSL 证书中的主机名验证。允许 mongotop 连接到 MongoDB 实例,即使其证书中的主机名与指定的主机名不匹配。
--tlsInsecure 绕过对服务器证书链和主机名的验证
--u=<username>, --username=<username> 认证用户名
--p=<password>, --password=<password> 认证密码
--authenticationDatabase=<database-name> 保存用户证书的数据库
--authenticationMechanism=<mechanism> 使用的身份验证机制
--awsSessionToken=<aws-session-token> 会话令牌,以通过 AWS IAM 进行身份验证
--gssapiServiceName=<service-name> 使用 GSSAPI/Kerberos 验证时要使用的服务名称(默认值:mongodb)
--gssapiHostName=<host-name> 使用 GSSAPI/Kerberos 验证时要使用的主机名(默认:<远程服务器地址>)
--d=<database-name>, --db=<database-name> 使用的数据库,例如:mongorestore --db=reporting dump/test/salaries.bson
--c=<collection-name>, --collection=<collection-name> 使用的集合,例如:mongorestore --db=reporting --collection=employeesalaries dump/test/salaries.bson
--excludeCollection=<collection-name> 已删除;还原时要跳过的集合(可多次指定,以排除其他集合)
--excludeCollectionsWithPrefix=<collection-prefix> 已删除;在还原过程中跳过具有给定前缀的集合(可多次指定以排除其他前缀)
--nsExclude=<namespace-pattern> 排除匹配的命名空间
--nsInclude=<namespace-pattern> 包含匹配的命名空间
--nsFrom=<namespace-pattern> 重命名匹配的命名空间,必须有匹配的 nsTo
--nsTo=<namespace-pattern> 重命名匹配的命名空间,必须有匹配的 nsFrom
--objcheck 在插入前验证所有对象
--oplogReplay 重放 Oplog 以进行时间点还原
--oplogLimit=<seconds>[:ordinal] 仅包含所提供时间戳之前的 oplog 条目
--oplogFile=<filename> 用于重放 oplog 的 oplog 文件
--archive=<filename> 从指定的存档文件中恢复转储。 如果指定的标志没有值,则从 stdin 读取归档文件
--restoreDbUsersAndRoles 恢复指定数据库的用户和角色定义
--dir=<directory-name> 输入目录,使用"-"表示 stdin
--gzip 解压压缩输入
--drop 在导入前删除每个集合
--dryRun 无需导入任何内容即可查看摘要。
--writeConcern=<write-concern> 写关注选项,例如 --writeConcern majority, --writeConcern '{w: 3, wtimeout: 500, fsync: true, j: true}'
--noIndexRestore 不还原索引
--convertLegacyIndexes 删除无效的索引选项并改写原有选项值(例如 true 变为 1)。
--noOptionsRestore 不恢复集合选项
--keepIndexVersion 不更新索引版本
--maintainInsertionOrder 按照文件在输入源中出现的顺序恢复文件。默认情况下,插入将以任意顺序执行。设置此标志还可以启用 --stopOnError 的行为,并将 NumInsertionWorkersPerCollection 限制为 1。
--j, --numParallelCollections: 并行恢复的收藏数量
--numInsertionWorkersPerCollection: 每个集合同时运行的插入操作数
--stopOnError 在插入过程中遇到任何错误后停止。默认情况下,mongorestore 会尝试继续处理文档验证和 DuplicateKey 错误,但启用此选项后,工具会停止。即使启用了该选项,遇到错误后仍可能插入少量文档;使用 --maintainInsertionOrder 可以在出现错误后立即停止。
--bypassDocumentValidation 绕过文件验证
--preserveUUID 保留原始收藏 UUID(默认为关闭,需要删除)
--fixDottedHashIndex 启用后,虚线字段上的所有哈希索引将创建为目标上的单个字段升序索引
以下是一些常见的 mongorestore 命令示例,展示了不同的用法:
(1)还原整个数据库:
mongorestore --host <hostname> --port <port> --dir <backup_directory>
(2)还原指定数据库:
mongorestore --host <hostname> --port <port> --db <database_name> --dir <backup_directory>
(3)还原指定集合:
mongorestore --host <hostname> --port <port> --db <database_name> --collection <collection_name> --dir <backup_directory>
(4)还原指定查询条件的文档:
mongorestore --host <hostname> --port <port> --db <database_name> --collection <collection_name> --query '{"field": "value"}' --dir <backup_directory>
(5)还原指定数据库,并使用 gzip 进行解压缩:
mongorestore --host <hostname> --port <port> --db <database_name> --gzip --dir <backup_directory>
(6)还原指定数据库,并排除指定集合:
mongorestore --host <hostname> --port <port> --db <database_name> --excludeCollection <collection_name> --dir <backup_directory>
(7)还原指定数据库,并指定用户名和密码:
mongorestore --host <hostname> --port <port> --db <database_name> --username <username> --password <password> --dir <backup_directory>