从快照恢复副本集
从备份恢复副本集时,Cloud Manager 会为您提供所选恢复点的恢复文件。要了解恢复过程,请参阅恢复概述。
注意事项
查看对BinData
BSON 子类型的更改
BSON 规范 将 BSON 二进制数据类型 (BinData
) 的默认子类型从2
更改为0
。快照中存储的某些二进制数据可能是BinData
2BinData
2BinData
子类型0 。备份会自动检测BinData
2BinData
子类型 的快照数据并将其转换为 子类型 。如果应用程序代码需要使用 子类型 ,则必须更新应用程序代码以处理 子类型0 。
使用以下内容中给出的设置进行恢复: restoreInfo.txt
备份恢复文件包括名为restoreInfo.txt
的元数据文件。 此文件捕获拍摄快照时数据库使用的选项。 恢复后,数据库必须使用列出的选项运行。 此文件包含:
groupName
ReplicaSetName
集群 ID (如果适用)
快照时间戳(作为 UTC 时间戳)
恢复时间戳(作为 UTC 的 BSON 时间戳)
上次应用的oplog (作为 UTC 的BSON时间戳)
MongoDB 版本
storage engine类型
mongod
拍摄快照时数据库使用的启动选项
备份注意事项
所有 FCV数据库必须符合相应的备份注意事项。
先决条件
要执行手动恢复,您必须在 Cloud Manager 中具有备份管理员角色。
恢复期间的客户端请求
您必须确保 MongoDB 部署在恢复期间不会收到客户端请求。 您必须:
使用新主机名恢复到新系统,并在新部署运行后重新配置应用程序代码,或者
确保恢复数据时 MongoDB 部署不会收到客户端请求。
恢复快照
要让 Cloud Manager 自动恢复快照,请执行以下操作:
在 MongoDB Cloud Manager 中,转到项目的Continuous Backup 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
选择恢复点。
选择要恢复备份的时间点。
恢复类型说明操作Snapshot允许您选择一个已存储的快照。选择要恢复的现有快照。Point In Time创建一个自定义快照,包括所有操作,直到但不包括所选时间。默认情况下,Oplog 会将数据保存 24 小时。
例如,如果您选择
12:00
,则恢复中的最后一次操作为11:59:59
或更早。重要
在 FCV 4中。 0 ,您无法执行涵盖最近一次备份重新同步之前任何时间的PIT恢复。有关导致重新同步的条件,请参阅重新同步备份。本说明不适用于 FCV 4 。 2或更高版本。
选择Date和Time 。Oplog Timestamp创建自定义快照,其中包括输入的oplog时间戳(含)之前的所有操作。 oplog Timestamp 包含两个字段:
TimestampIncrement作为 32 位序数在该秒内应用的操作顺序。输入oplog Timestamp 和 Increment。
在副本集上运行针对
local.oplog.rs
的查询,以查找所需的时间戳。单击 Next(连接)。
警告
考虑自动恢复
此过程涉及大量步骤。其中一些步骤会产生严重的安全隐患。如果您不需要恢复到 Cloud Manager 未管理的部署,请考虑自动恢复。
在 MongoDB Cloud Manager 中,转到项目的Continuous Backup 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
选择恢复点。
选择要恢复备份的时间点。
恢复类型说明操作Snapshot允许您选择一个已存储的快照。选择要恢复的现有快照。Point In Time创建一个自定义快照,包括所有操作,直到但不包括所选时间。默认情况下,Oplog 会将数据保存 24 小时。
例如,如果您选择
12:00
,则恢复中的最后一次操作为11:59:59
或更早。重要
在 FCV 4中。 0 ,您无法执行涵盖最近一次备份重新同步之前任何时间的PIT恢复。有关导致重新同步的条件,请参阅重新同步备份。本说明不适用于 FCV 4 。 2或更高版本。
选择Date和Time 。Oplog Timestamp创建自定义快照,其中包括输入的oplog时间戳(含)之前的所有操作。 oplog Timestamp 包含两个字段:
TimestampIncrement作为 32 位序数在该秒内应用的操作顺序。输入oplog Timestamp 和 Increment。
在副本集上运行针对
local.oplog.rs
的查询,以查找所需的时间戳。单击 Next(连接)。
配置快照下载。
配置以下下载选项:
Pull Restore Usage Limit选择链接的使用次数。如果您选择No Limit
,则该链接可重复使用,直到过期。Restore Link Expiration (in hours)选择链接过期前的小时数。默认值为1
。最大值是所选快照过期前的小时数。单击 Finalize Request(连接)。
如果您使用2 FA ,Cloud Manager 会提示您输入2 FA 代码。输入您的2 FA 代码,然后单击Finalize Request 。
在 MongoDB Cloud Manager 中,转到项目的Continuous Backup 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
检索快照。
Cloud Manager 创建指向快照的链接。默认情况下,这些链接的有效期为一小时,且只能使用一次。
要下载快照,请执行以下操作:
单击 Restore History(连接)。
恢复作业完成后,单击显示的每个副本集的(get link) 。
单击:
点击链接右侧的“复制”按钮,可复制链接以供日后使用,或
Download 立即下载快照。
取消管理目标副本集。
在尝试手动恢复数据之前,请从自动化中删除副本集。
选择Unmanage this item in Ops Managers but continue to monitor选项。
停止目标副本集。
根据您的路径,您可能需要指定mongosh
的路径。运行:
mongosh --port <port> \ --eval "db.getSiblingDB('admin').shutdownServer()"
验证目标副本集的硬件和软件要求。
存储容量: | 目标主机的硬件需要有足够的可用存储空间来存储恢复的数据。如果要保留此主机上的任何现有集群数据,请确保该主机有足够的可用空间用于集群数据和恢复的数据。 |
MongoDB 版本 | 要恢复的目标主机和要恢复的源主机必须运行相同的 MongoDB Server 版本。要检查 MongoDB 版本,请从终端或 Shell 运行 mongod
--version 。 |
要了解更多信息,请参阅安装。
在临时端口上启动临时独立实例。
作为临时措施,以独立模式启动mongod
进程。这允许您在后续步骤中向system.replset
集合添加新的配置参数。
在此过程中提到<ephemeralPort>
的所有步骤中,请使用用于临时独立mongod
进程的 。此端口必须不同于源主机端口和目标主机端口。
运行mongod
进程,如下所示。根据路径,您可能需要指定mongod
二进制文件的路径。
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \
如果要从经过命名空间筛选的快照恢复,请使用--restore
选项。
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \ --restore
在mongod
进程开始接受连接后,继续。
从local
数据库中删除与副本集相关的集合。
要执行手动恢复,您必须在 Cloud Manager 中具有备份管理员角色。
运行以下命令,删除以前的副本集配置和其他非 oplog、与复制相关的集合。
db.getSiblingDB("local").replset.minvalid.drop() db.getSiblingDB("local").replset.oplogTruncateAfterPoint.drop() db.getSiblingDB("local").replset.election.drop() db.getSiblingDB("local").system.replset.remove({})
成功的响应应如下所示:
> db.getSiblingDB("local").replset.minvalid.drop() true > db.getSiblingDB("local").replset.oplogTruncateAfterPoint.drop() true > db.getSiblingDB("local").replset.election.drop() true > db.getSiblingDB("local").system.replset.remove({}) WriteResult({ "nRemoved" : 1 })
添加新的副本集配置。
将以下文档插入local
数据库的system.replset
集合中。更改以下变量:
<replaceMeWithTheReplicaSetName>
到副本集的名称。此名称不必与旧名称相同。<host>
为该副本集成员提供服务的主机。<ephemeralPortNewReplicaSet>
到新副本集的临时端口。这必须是与您在此过程的步骤11中指定的<ephemeralPort>
不同的端口。
1 db.getSiblingDB("local").system.replset.insertOne({ 2 "_id" : "<replaceMeWithTheReplicaSetName>", 3 "version" : NumberInt(1), 4 "protocolVersion" : NumberInt(1), 5 "members" : [ 6 { 7 "_id" : NumberInt(0), 8 "host" : "<host>:<ephemeralPortNewReplicaSet>" 9 } 10 ], 11 "settings" : { 12 13 } 14 })
成功的响应应如下所示:
{ "acknowledged" : true, "insertedId" : "<yourReplicaSetName>" }
将恢复点设置为Restore Timestamp
中restoreInfo.txt
中的值。
将oplogTruncateAfterPoint
文档设置为restoreInfo.txt文件的Restore Timestamp
字段中提供的值。
该文件中的Restore Timestamp
字段包含两个值。在以下示例中,第一个值是时间戳,第二个值是增量。
1 ... 2 Restore timestamp: (1609947369, 2) 3 Last Oplog Applied: Wed Jan 06 15:36:09 GMT 2021 (1609947369, 1) 4 MongoDB Version: 4.2.11 5 ...
以下示例代码使用上一示例中的时间戳值和增量值。
truncateAfterPoint = Timestamp(1609947369,2) db.getSiblingDB("local").replset.oplogTruncateAfterPoint.insertOne({ "_id": "oplogTruncateAfterPoint", "oplogTruncateAfterPoint": truncateAfterPoint })
成功的响应应如下所示:
WriteResult({ "nInserted" : 1 })
注意
正在恢复 MongoDB 4 。 2使用 MongoDB 4的快照。 4
如果您尝试恢复 MongoDB 4 .运行 MongoDB 4的mongod
的2快照。 4 ,您的 oplog 可能包含不需要的文档。
要解决此问题,您可以执行以下任一操作:
将时间戳递减1 。
使用 MongoDB 4进行恢复。 2 。
让 Cloud Manager 运行自动恢复。
此问题不适用于 MongoDB 4 。 4或更高版本的快照。
停止临时独立实例。
根据您的路径,您可能需要指定mongosh
的路径。运行:
mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
重新启动实例以恢复 Oplog。
使用以下命令启动mongod
,并指定以下参数:
<bind_ip>
为您在此过程的步骤14中指定的该副本集成员提供服务的主机。<port>
到您在此过程的步骤11中指定的 <ephemeralPort>。
mongod
会重放直至Restore timestamp
的 oplog。
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \ --bind_ip <host-serving-this-replica-set-member> \ --replSet <replaceMeWithTheReplicaSetName>
停止临时端口上的临时实例。
根据您的路径,您可能需要指定mongosh
的路径。运行:
mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
(仅限时点恢复)运行 MongoDB 备份恢复实用程序。
此步骤是可选的。如果需要时点恢复,请运行它。如果您需要此步骤,请完成此步骤,然后运行步骤21和22 。如果不需要此步骤,请继续执行步骤23 。在此步骤中,您将在副本集的目标实例上下载并运行 MongoDB 备份恢复实用工具,然后停止该实例。
将 MongoDB 备份恢复实用工具下载到您的主机。
如果您关闭了恢复面板,请单击Continuous Backup in Deployment 、 More ,然后单击Download MongoDB Backup Restore Utility 。
使用提取的快照目录作为数据目录,在未启用身份验证的情况下启动
mongod
实例。根据路径,您可能需要指定mongod
二进制文件的路径。mongod --port <ephemeralPort> \ --dbpath </path/to/datafiles> \ --setParameter ttlMonitorEnabled=false 警告
MongoDB 备份恢复实用工具不支持身份验证,因此您无法通过身份验证启动此临时数据库。
在目标主机上运行 MongoDB 备份恢复实用工具。为副本集运行一次。
重要
预配置的 mongodb-backup-restore-util 命令
Cloud Manager 在Run Binary with PIT Options下的恢复面板上为
mongodb-backup-restore-util
提供相应的恢复选项。您应复制 Cloud Manager 中提供的
mongodb-backup-restore-util
命令。./mongodb-backup-restore-util --https --host <targetHost> \ --port <targetPort> \ --opStart <opLogStartTimeStamp> \ --opEnd <opLogEndTimeStamp> \ --logFile <logPath> \ --apiKey <apiKey> \ --groupId <groupId> \ --rsId <rsId> \ --whitelist <database1.collection1, database2, etc.> \ --blacklist <database1.collection1, database2, etc.> \ --seedReplSetMember \ --oplogSizeMB <size> \ --seedTargetPort <port> \ --ssl \ --sslCAFile </path/to/ca.pem> \ --sslPEMKeyFile </path/to/pemkey.pem> --sslClientCertificateSubject <distinguishedName> \ --sslRequireValidServerCertificates <true|false> \ --sslServerClientCertificate </path/to/client.pem> \ --sslServerClientCertificatePassword <password> \ --sslRequireValidMMSBackupServerCertificate <true|false> \ --sslTrustedMMSBackupServerCertificate </path/to/mms-certs.pem> \ --httpProxy <proxyURL> mongodb-backup-restore-util
命令使用以下选项:选项必要性说明--host
必需--port
必需--opStart
必需为要包含在恢复中的第一个 oplog 条目提供 BSON 时间戳 。此信息显示在随下载的快照提供的 文件的“Last Oplog
restoreInfo.txt
Applied”条目中。此值必须小于或等于
--opEnd
值。--opEnd
必需提供要包含在恢复中的最后一个 oplog 条目的 BSON 时间戳 。
此值不能大于 oplog 的末尾。
--logFile
Optional提供写入MBRU日志的路径(包括文件名)。--oplogSourceAddr
必需提供 Cloud Manager 资源端点的URL 。--apiKey
必需提供您的 Cloud Manager 代理API 密钥。--groupId
必需提供群组ID。--rsId
必需提供副本集ID。--whitelist
Optional提供要限制恢复的数据库和/或集合的列表。--blacklist
Optional提供要从恢复中排除的数据库和/或集合的列表。--seedReplSetMember
Optional如果您需要副本集成员来重新创建oplog集合并使用正确的时间戳作为种子,则使用。
需要
--oplogSizeMB
和--seedTargetPort
。--oplogSizeMB
可选的提供oplog大小(以 MB 为单位)。
如果设置了
--seedReplSetMember
,则为必填项。--seedTargetPort
可选的--ssl
可选的--sslCAFile
可选的提供证书颁发机构文件的路径。
如果设置了
--ssl
,则为必填项。--sslPEMKeyFile
可选的提供PEM证书文件的路径。
如果设置了
--ssl
,则为必填项。--sslPEMKeyFilePwd
可选的提供
--sslPEMKeyFile
中指定的PEM证书文件的密码。如果设置了
--ssl
并且PEM密钥文件已加密,则为必填项。--sslClientCertificateSubject
提供目标 MongoDB 进程的客户端证书主题或标识名 (DN)。--sslRequireValidServerCertificates
Optional设置一个标志,指示该工具是否应验证目标 MongoDB 进程提供的证书。--sslServerClientCertificate
Optional提供客户端证书文件的绝对路径,用于连接到 Cloud Manager 主机。--sslServerClientCertificatePassword
可选的提供用于连接到 Cloud Manager 主机的客户端证书文件密码的绝对路径。
如果设置了
--sslServerClientCertificate
并且该证书已加密,则为必填项。--sslRequireValidMMSBackupServerCertificate
Optional设置一个标志,指示在联系 Cloud Manager 主机时是否需要有效证书。默认值为true
。--sslTrustedMMSBackupServerCertificate
Optional为 Cloud Manager 主机提供PEM格式的受信任证书颁发机构证书的绝对路径。如果未提供此标志,则使用系统证书颁发机构。--httpProxy
Optional提供该工具可以使用的 HTTP 代理服务器的 URL 。表示如果您复制了 Cloud Manager 中提供的
mongodb-backup-restore-util
命令,则此字段已预先配置。停止实例上的
mongod
。根据您的路径,您可能需要指定mongosh
的路径。运行:mongosh --port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
(仅限时点恢复)停止临时端口上的实例。
仅当您运行了步骤20时才需要执行此步骤。如果您不需要运行步骤20 ,则继续执行步骤23 。
根据您的路径,您可能需要指定mongosh
的路径。运行:
mongosh--port <ephemeralPort> \ --eval "db.getSiblingDB('admin').shutdownServer()"
停止独立实例。
根据您的路径,您可能需要指定mongosh
的路径。运行:
mongosh --port <port> \ --eval "db.getSiblingDB('admin').shutdownServer()"
重新启动副本集中的所有节点。
此时,副本集中的数据文件处于一致状态,但需要更新副本集配置,以便每个节点相互了解。
运行以下命令:
sudo -u mongod <path/to/target_mongod_binary> -f /path/to/datafiles/automation-mongod.conf
以下示例将重新启动版本为4的所有节点。 4 。 12企业,数据路径为/data6/node3
:
sudo -u mongod /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.12-ent/bin/mongod -f /data6/node3/automation-mongod.conf
在 MongoDB Cloud Manager 中,转到项目的Deployment 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
如果 Deployment(数据库部署)页面尚未出现,请单击侧边栏中的 Deployment(数据库)。
显示“部署”页面。
重新导入副本集。
要再次自动化管理副本集,请将副本集重新导入 Cloud Manager。
单击Add ,选择Existing MongoDB Deployment ,然后继续将Automation添加回集群。
要让 Cloud Manager 自动恢复快照,请执行以下操作:
在 MongoDB Cloud Manager 中,转到项目的Continuous Backup 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
选择恢复点。
选择要恢复备份的时间点。
恢复类型说明操作Snapshot允许您选择一个已存储的快照。选择要恢复的现有快照。Point In Time创建一个自定义快照,包括所有操作,直到但不包括所选时间。默认情况下,Oplog 会将数据保存 24 小时。
例如,如果您选择
12:00
,则恢复中的最后一次操作为11:59:59
或更早。重要
在 FCV 4中。 0 ,您无法执行涵盖最近一次备份重新同步之前任何时间的PIT恢复。有关导致重新同步的条件,请参阅重新同步备份。本说明不适用于 FCV 4 。 2或更高版本。
选择Date和Time 。Oplog Timestamp创建自定义快照,其中包括输入的oplog时间戳(含)之前的所有操作。 oplog Timestamp 包含两个字段:
TimestampIncrement作为 32 位序数在该秒内应用的操作顺序。输入oplog Timestamp 和 Increment。
在副本集上运行针对
local.oplog.rs
的查询,以查找所需的时间戳。单击 Next(连接)。
要查找最新的oplog条目,请在mongosh
中运行以下查询:
db.getSiblingDB('local').oplog.rs.find().sort({$natural:-1}).limit(1).pretty()
成功的结果应如下所示:
{ "ts": Timestamp(1537559320, 1), "h": NumberLong("-2447431566377702740"), "v": 2, "op": "n", "ns": "", "wall": ISODate("2018-09-21T19:48:40.708Z"), "o": { "msg": "initiating set" } }
ts
值的各部分与Timestamp和Increment框所需的值相对应。
注意
要将纪元时间转换为人类可读的时间戳,请尝试使用 Epoch Converter 等工具
MongoDB 不支持此服务。此处引用仅供参考。
在 MongoDB Cloud Manager 中,转到项目的Continuous Backup 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
选择恢复点。
选择要恢复备份的时间点。
恢复类型说明操作Snapshot允许您选择一个已存储的快照。选择要恢复的现有快照。Point In Time创建一个自定义快照,包括所有操作,直到但不包括所选时间。默认情况下,Oplog 会将数据保存 24 小时。
例如,如果您选择
12:00
,则恢复中的最后一次操作为11:59:59
或更早。重要
在 FCV 4中。 0 ,您无法执行涵盖最近一次备份重新同步之前任何时间的PIT恢复。有关导致重新同步的条件,请参阅重新同步备份。本说明不适用于 FCV 4 。 2或更高版本。
选择Date和Time 。Oplog Timestamp创建自定义快照,其中包括输入的oplog时间戳(含)之前的所有操作。 oplog Timestamp 包含两个字段:
TimestampIncrement作为 32 位序数在该秒内应用的操作顺序。输入oplog Timestamp 和 Increment。
在副本集上运行针对
local.oplog.rs
的查询,以查找所需的时间戳。单击 Next(连接)。
要查找最新的oplog条目,请在mongosh
中运行以下查询:
db.getSiblingDB('local').oplog.rs.find().sort({$natural:-1}).limit(1).pretty()
成功的结果应如下所示:
{ "ts": Timestamp(1537559320, 1), "h": NumberLong("-2447431566377702740"), "v": 2, "op": "n", "ns": "", "wall": ISODate("2018-09-21T19:48:40.708Z"), "o": { "msg": "initiating set" } }
ts
值的各部分与Timestamp和Increment框所需的值相对应。
注意
要将纪元时间转换为人类可读的时间戳,请尝试使用 Epoch Converter 等工具
MongoDB 不支持此服务。此处引用仅供参考。
配置快照下载。
配置以下下载选项:
Pull Restore Usage Limit选择链接的使用次数。如果您选择No Limit
,则该链接可重复使用,直到过期。Restore Link Expiration (in hours)选择链接过期前的小时数。默认值为1
。最大值是所选快照过期前的小时数。单击 Finalize Request(连接)。
如果您使用2 FA ,Cloud Manager 会提示您输入2 FA 代码。输入您的2 FA 代码,然后单击Finalize Request 。
在 MongoDB Cloud Manager 中,转到项目的Continuous Backup 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
检索快照。
Cloud Manager 创建指向快照的链接。默认情况下,这些链接的有效期为一小时,且只能使用一次。
要下载快照,请执行以下操作:
单击 Restore History(连接)。
恢复作业完成后,单击出现的每个副本集的(get link) (恢复)。
单击:
点击链接右侧的“复制”按钮,可复制链接以供日后使用,或
Download 立即下载快照。
重要
用于时间点恢复的额外步骤
对于时间点和 oplog 时间戳恢复,会显示其他说明。最后一步显示了使用MBRU必须运行的完整命令。它包括确保完整恢复所需的所有选项。
选择并复制Run Binary with PIT Options下提供的mongodb-backup-restore-util
命令。
运行 MongoDB 备份恢复实用程序(仅限时点恢复)。
将 MongoDB 备份恢复实用工具下载到您的主机。
注意
如果关闭了恢复面板:
在 MongoDB Cloud Manager 中,转到项目的Continuous Backup页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
单击More ,然后单击Download MongoDB Backup Restore Utility 。
使用提取的快照目录作为数据目录,在未启用身份验证的情况下启动
mongod
实例。例子
mongod --port <port number> \ --dbpath <temp-database-path> \ --setParameter ttlMonitorEnabled=false 警告
MongoDB 备份恢复实用工具不支持身份验证,因此您无法通过身份验证启动此临时数据库。
在目标主机上运行 MongoDB 备份恢复实用程序。为副本集运行一次。
重要
预配置的 mongodb-backup-restore-util 命令
Cloud Manager 在Run Binary with PIT Options下的恢复面板上为
mongodb-backup-restore-util
提供相应的恢复选项。您应复制 Cloud Manager 中提供的
mongodb-backup-restore-util
命令。./mongodb-backup-restore-util --https --host <targetHost> \ --port <targetPort> \ --opStart <opLogStartTimeStamp> \ --opEnd <opLogEndTimeStamp> \ --logFile <logPath> \ --apiKey <apiKey> \ --groupId <groupId> \ --rsId <rsId> \ --whitelist <database1.collection1, database2, etc.> \ --blacklist <database1.collection1, database2, etc.> \ --seedReplSetMember \ --oplogSizeMB <size> \ --seedTargetPort <port> \ --ssl \ --sslCAFile </path/to/ca.pem> \ --sslPEMKeyFile </path/to/pemkey.pem> --sslClientCertificateSubject <distinguishedName> \ --sslRequireValidServerCertificates <true|false> \ --sslServerClientCertificate </path/to/client.pem> \ --sslServerClientCertificatePassword <password> \ --sslRequireValidMMSBackupServerCertificate <true|false> \ --sslTrustedMMSBackupServerCertificate </path/to/mms-certs.pem> \ --httpProxy <proxyURL> mongodb-backup-restore-util
命令使用以下选项:选项必要性说明--host
必需--port
必需--opStart
必需为要包含在恢复中的第一个 oplog 条目提供 BSON 时间戳 。此信息显示在随下载的快照提供的 文件的“Last Oplog
restoreInfo.txt
Applied”条目中。此值必须小于或等于
--opEnd
值。--opEnd
必需提供要包含在恢复中的最后一个 oplog 条目的 BSON 时间戳 。
此值不能大于 oplog 的末尾。
--logFile
Optional提供写入MBRU日志的路径(包括文件名)。--oplogSourceAddr
必需提供 Cloud Manager 资源端点的URL 。--apiKey
必需提供您的 Cloud Manager 代理API 密钥。--groupId
必需提供群组ID。--rsId
必需提供副本集ID。--whitelist
Optional提供要限制恢复的数据库和/或集合的列表。--blacklist
Optional提供要从恢复中排除的数据库和/或集合的列表。--seedReplSetMember
Optional如果您需要副本集成员来重新创建oplog集合并使用正确的时间戳作为种子,则使用。
需要
--oplogSizeMB
和--seedTargetPort
。--oplogSizeMB
可选的提供oplog大小(以 MB 为单位)。
如果设置了
--seedReplSetMember
,则为必填项。--seedTargetPort
可选的--ssl
可选的--sslCAFile
可选的提供证书颁发机构文件的路径。
如果设置了
--ssl
,则为必填项。--sslPEMKeyFile
可选的提供PEM证书文件的路径。
如果设置了
--ssl
,则为必填项。--sslPEMKeyFilePwd
可选的提供
--sslPEMKeyFile
中指定的PEM证书文件的密码。如果设置了
--ssl
并且PEM密钥文件已加密,则为必填项。--sslClientCertificateSubject
提供目标 MongoDB 进程的客户端证书主题或标识名 (DN)。--sslRequireValidServerCertificates
Optional设置一个标志,指示该工具是否应验证目标 MongoDB 进程提供的证书。--sslServerClientCertificate
Optional提供客户端证书文件的绝对路径,用于连接到 Cloud Manager 主机。--sslServerClientCertificatePassword
可选的提供用于连接到 Cloud Manager 主机的客户端证书文件密码的绝对路径。
如果设置了
--sslServerClientCertificate
并且该证书已加密,则为必填项。--sslRequireValidMMSBackupServerCertificate
Optional设置一个标志,指示在联系 Cloud Manager 主机时是否需要有效证书。默认值为true
。--sslTrustedMMSBackupServerCertificate
Optional为 Cloud Manager 主机提供PEM格式的受信任证书颁发机构证书的绝对路径。如果未提供此标志,则使用系统证书颁发机构。--httpProxy
Optional提供该工具可以使用的 HTTP 代理服务器的 URL 。表示如果您复制了 Cloud Manager 中提供的
mongodb-backup-restore-util
命令,则此字段已预先配置。
取消管理副本集。
在尝试手动恢复数据之前,请从自动化中删除副本集。
手动恢复副本集。
按照 MongoDB 手册中的教程恢复副本集。
重新导入副本集。
要再次自动化管理副本集,请将副本集重新导入 Cloud Manager。