从快照恢复副本集
当您从备份恢复副本集时, Cloud Manager会为您提供所选恢复点的恢复文件。 要学习;了解恢复进程,请参阅恢复概述。
Considerations
查看对BinData
BSON子类型的更改
BSON规范 将BSON二进制数据类型 (BinData
) 的默认子类型从2
更改为0
。快照中存储的某些二进制数据可能是BinData
子类型2 。 备份会自动检测BinData
子类型2的快照数据并将其转换为BinData
子类型0 。 如果应用程序代码需要使用BinData
子类型2 ,则必须更新应用程序代码以处理BinData
子类型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 ManagerGoContinuous Backup在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 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 ManagerGoContinuous Backup在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 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 ManagerGoContinuous Backup在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
Retrieve the Snapshots.
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的Atlas 备份快照
如果您尝试使用运行MongoDB 4.4的mongod
恢复MongoDB 4.2快照,则您的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
必需--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
可选的提供副本集主节点 (primary node in the replica set)节点的端口。 这可能与 临时端口 不同 使用。
如果设立了
--seedReplSetMember
,则为必填项。--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()"
(仅限时点恢复)重新启动实例以恢复oplog 。
仅当您运行了步骤20时才需要执行此步骤。 如果您不需要运行步骤20 ,则继续执行步骤23 。 使用以下命令启动mongod
。 mongod
会重放oplog ,直至Restore timestamp
。 根据您的路径,您可能需要指定mongod
二进制文件的路径。
mongod --dbpath </path/to/datafiles> \ --port <ephemeralPort> \ --replSet <replaceMeWithTheReplicaSetName>
完成此步骤后,实际恢复进程即完成。 在以下步骤中,您恢复副本集的配置并重新导入。
(仅限时点恢复)停止临时端口上的实例。
仅当您运行了步骤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 ManagerGoDeployment在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
如果 Deployment(数据库部署)页面尚未出现,请单击侧边栏中的 Deployment(数据库)。
显示“部署”页面。
重新导入副本集。
要再次自动化管理副本集,请将副本集重新导入Cloud Manager。
单击Add ,选择Existing MongoDB Deployment ,然后继续将Automation添加回集群。
要让Cloud Manager自动恢复快照,请执行以下操作:
MongoDB Cloud ManagerGoContinuous Backup在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 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 ManagerGoContinuous Backup在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 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 ManagerGoContinuous Backup在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
单击侧边栏中的 Continuous Backup(支持)。
显示“持续备份”页面。
Retrieve the snapshots.
Cloud Manager创建指向快照的链接。 默认,这些链接的有效期为一小时,且只能使用一次。
要下载快照,请执行以下操作:
单击 Restore History(连接)。
恢复作业完成后,单击出现的每个副本集的(get link) (恢复)。
单击:
点击链接右侧的“复制”按钮,可复制链接以供日后使用,或
Download 立即下载快照。
重要
用于时间点恢复的额外步骤
对于时间点和oplog时间戳恢复,会显示其他说明。 最后一步显示了使用MBRU必须运行的完整命令。 它包括确保完全恢复所需的所有选项。
选择并复制Run Binary with PIT Options下提供的mongodb-backup-restore-util
命令。
运行MongoDB备份恢复实用程序(仅限时点恢复)。
将MongoDB备份恢复实用工具下载到您的托管。
注意
如果关闭了恢复面板:
在MongoDB Cloud Manager中, Go项目的 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
必需--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
可选的提供副本集主节点 (primary node in the replica set)节点的端口。 这可能与 临时端口 不同 使用。
如果设立了
--seedReplSetMember
,则为必填项。--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。