对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

从从节点 (secondary node from replica set) Ops Manager 恢复 Ops Manager

当主 MongoDB Ops Manager 失效时,您可以从从 MongoDB Ops Manager 恢复其后端数据库,然后启动新的主 MongoDB Ops Manager。在发生事件后,例如升级失败、意外数据删除或基础设施失败时使用此程序。当主节点 MongoDB Ops Manager 重启时,它会自动进入恢复模式以协调代理配置,直到恢复正常操作。有关此模式的概要,请参阅使用从实例备份和恢复 MongoDB Ops Manager。要配置此模式,请参阅配置从 MongoDB Ops Manager 以备份 MongoDB Ops Manager。

恢复后端数据库并启动主 MongoDB Ops Manager 的顺序至关重要。

警告

在启动主节点 (primary node in the replica set) Ops Manager 之前,请恢复后端数据库。如果在恢复后端数据库之前启动主节点 (primary node in the replica set) Ops Manager,则主节点 (primary node in the replica set) Ops Manager 可能会写入不一致状态,并在旧部署和新部署之间创建分裂大脑场景。

如果从节点 MongoDB Ops Manager 也备份快照元数据存储和 oplog 元数据存储,则在启动主节点 MongoDB Ops Manager 之前,将所有三个后端数据库恢复到同一时间点,或将元数据存储恢复到比应用程序数据库稍晚的时间点。将元数据存储恢复到比应用程序数据库早的时间点会导致主节点 MongoDB Ops Manager 拒绝受影响的恢复作业,并显示 HTTP 409 (“缺少快照块”)。

时点还原可以将应用程序数据库恢复到您选择的时间点,而不是灾难发生的时刻。灾难发生前备份未在 oplog slice 中捕获的操作可能无法恢复。选择一个尽可能接近灾难的还原点,具体取决于您的时点恢复窗口。

在主 MongoDB Ops Manager 重启后,协调会从 MongoDB 代理中恢复部署自动化配置。其他最近的应用程序数据库变更反映您选择的恢复点。

主节点 (primary node in the replica set)和从节点(secondary node from replica set) Ops Manager 版本必须保持兼容。

警告

将应用程序数据库恢复到与拍摄快照的原始主节点 (primary node in the replica set) Ops Manager 版本相同或更新的主节点 (primary node in the replica set) Ops Manager。如果替换的二进制文件早于应用程序数据库的记录版本,Ops Manager 将拒绝启动并报告“不允许降级”错误。

  • 从 MongoDB Ops Manager 8.0.24 及更高版本开始,恢复模式在默认情况下启用。如果您已将其禁用,请在恢复之前在主 MongoDB Ops Manager 上重新启用。有关步骤,请参阅配置从 MongoDB Ops Manager 以备份 MongoDB Ops Manager。

  • 确认从节点(secondary node from replica set) Ops Manager 已完成快照,并为后端数据库设置了连续时间点恢复窗口。

  • 确认您保留了恢复所需的每个主机状态,包括来自原始主节点 MongoDB Ops Manager 安装的 gen.key 文件。

完整的主 MongoDB Ops Manager 恢复需要不仅应用程序数据库。除从节点(secondary node from replica set) MongoDB Ops Manager 备份的应用程序数据库外,还要保留每个主机上的以下状态:

列项
地点
说明

加密密钥 gen.key

/etc/mongodb-mms/gen.key

加密应用程序数据库内容。必须与原始安装使用的密钥匹配,否则主节点 MongoDB Ops Manager 将无法在启动时解密恢复的应用程序数据库。

MongoDB Ops Manager 配置

conf-mms.properties 和 Java虚拟机(JVM)配置文件

存储数据库 URL、块存储配置、许可证书和 TLS 证书。如果没有它,则必须手动重新配置主 MongoDB Ops Manager。

代理配置

/etc/mongodb-mms/automation-agent.config 在每个托管主机上

存储 mmsGroupId 和 mmsApiKey。这些必须与恢复的应用程序数据库的项目记录匹配,以便代理可以重新附加而无需重新注册。

重要

如果 gen.key 文件缺失或与恢复的应用程序数据库不匹配,则主节点 MongoDB Ops Manager 启动预检失败,并报错,指出 gen.key 与此 MongoDB Ops Manager 安装已使用的密钥不匹配。将 gen.key 保留在您的灾难恢复备份中,与应用程序数据库数据一起。

1

在从节点(secondary node from replica set) MongoDB Ops Manager 中,选择失败事件之前的时间点。对主节点 (primary node in the replica set) MongoDB Ops Manager 的应用程序数据库使用时间点恢复窗口。

2

如果您丢失了应用程序数据库主机,请预配具有相同副本集名称和所有权的空 MongoDB 进程。在运行自动恢复之前,请在每个主机上重新安装 MongoDB Agent。

3

在从 Ops Manager 中,将主 Ops Manager 的应用程序数据库恢复到您选择的时间点:

  1. 单击 Continuous Backup,然后选择应用程序数据库副本集。

  2. 单击 菜单,然后单击 Restore。

  3. 选择 Point in Time,然后输入目标日期和时间。

  4. 单击 Choose Cluster to Restore to,选择应用程序数据库副本集托管,然后单击 Restore。

从节点(secondary node from replica set) MongoDB Ops Manager 的 MongoDB Agent 停止应用程序数据库进程,使用恢复的快照替换数据,将 oplog 重放到目标时间,并重新启动进程。

警告

如果从节点 Ops Manager 也备份快照和oplog 元数据存储,请在启动主节点 Ops Manager 之前,将其恢复到与应用程序数据库相同的时间点,或稍晚一些的时间点。将元数据存储恢复到较早的时间点会导致主节点 Ops Manager 拒绝受影响的恢复作业,并显示 HTTP 409 (“快照块缺失”)。

如果恢复的只是应用程序数据库,从实例 MongoDB Ops Manager 将元数据存储保持不变。这对正常操作是安全的,但主实例 MongoDB Ops Manager 在恢复点与当前之间拍摄的备份快照可能不可用。

4

启动主 MongoDB Ops Manager。主 MongoDB Ops Manager 连接到恢复的应用程序数据库,读取恢复的状态,并开始恢复。要了解更多信息,请参阅 启动和停止 MongoDB Ops Manager 应用程序。

5

主节点 (primary node in the replica set) Ops Manager 进入恢复模式并自动协调部署配置。在协调运行时,主节点 (primary node in the replica set) Ops Manager 会显示恢复模式横幅。无需手动操作。协调完成后,主节点 (primary node in the replica set) Ops Manager 会退出恢复模式。

恢复应用程序数据库并启动主节点 (primary node in the replica set) Ops Manager 后,主节点 (primary node in the replica set) Ops Manager 会将每个 MongoDB Agent 的配置版本与恢复的配置版本进行比较。如果代理报告的版本较新,主节点 (primary node in the replica set) Ops Manager 会为该项目进入恢复模式并自动协调配置:

  • 主节点 (primary node in the replica set)Ops Manager隔离项目。它显示恢复模式横幅,返回对代理轮询的未更改响应,并阻止从用户界面和API部署更改,直到协调完成。

  • 主节点 MongoDB Ops Manager 从每个代理获取配置版本,选择具有最新配置的代理,并将该配置写入应用程序数据库作为权威配置。

  • 主节点 Ops Manager 会退出项目的恢复模式,并恢复正常操作。备份会自动恢复。

此协调可防止分割大脑场景。它在任何代理接收新配置之前,将所有代理聚焦到单一权威配置。

将应用程序数据库回滚到较早的时间点时,恢复的配置将不再包含您在恢复点之后所做的部署更改。如果没有协调,代理将收到较早的配置,并停止配置不再引用的进程。影响取决于部署更改:

部署更改
未协调的风险

新建副本集节点

数据存在于其他节点,因此您不会丢失任何数据。

带有迁移数据块的新分片

迁移的数据块仅存在于新分片上。停止它会使该数据无法访问,从而导致数据丢失。

新进程版本

该进程无法在回滚的二进制版本上运行,这会导致操作漂移。

新索引

索引查询会降级,直到 MongoDB Ops Manager 重建索引。

协调可防止这些结果。主节点 (primary node in the replica set) MongoDB Ops Manager 将所有代理合并到最新配置,并在退出恢复模式之前将按需快照入队,这可为您提供一个一致的备份点。

确认恢复的主节点 (primary node in the replica set) Ops Manager 正常:

  • 确认 MongoDB 代理重新连接并报告状态正常。

  • 确认您的托管部署的自动化、备份和监控已恢复。

  • 确认主节点 (primary node in the replica set) MongoDB Ops Manager 退出恢复模式。要检查恢复模式状态,请作为具有 Project Read Only 角色的用户向以下终结点发送 GET 请求。响应显示当前状态、trigger 原因和项目的时间戳:

    GET /api/public/v1.0/groups/{PROJECT-ID}/restorationMode

如果主 MongoDB Ops Manager 在恢复模式下重启,它将在下一次 MongoDB Agent 拉取时重新触发协调。您无需对重启情况采取操作。

协调可能无法完成,示例因为无法访问代理。在这种情况下,请以具有 Project Owner角色的用户身份使用以下API端点之一:

  • 要重试协调,请向以下终结点发送 POST 请求。重试会重置协调失败计数器,并在不退出恢复模式的情况下重新运行协调:

    POST /api/public/v1.0/groups/{PROJECT-ID}/restorationMode/retry
  • 要强制主 Ops Manager 退出恢复模式并接受恢复的配置,请向以下终结点发送 DELETE 请求:

    DELETE /api/public/v1.0/groups/{PROJECT-ID}/restorationMode

警告

强制主节点 (primary node in the replica set) MongoDB Ops Manager 退出恢复模式时,它会接受恢复的配置,而不会协调后续代理配置。仅当协调无法完成时才使用此终结点。强制退出后,主节点 Ops Manager 会向项目中的所有代理提供服务恢复的配置,并且在所有代理都合并到该配置之前不会重新进入恢复模式。

此模式可就地恢复主节点 MongoDB Ops Manager。它不会将从节点 MongoDB Ops Manager 提升为主节点 MongoDB Ops Manager。

验证恢复的主节点 (primary node in the replica set) Ops Manager 后,完成切换:

  • 更新 URL to Access Ops Manager 设置和所有 DNS 记录,使其点已恢复的主节点 (primary node in the replica set)Ops Manager。

  • 确认 MongoDB 代理 连接到恢复的主节点 Ops Manager。当代理的配置中的 mmsGroupId 和 mmsApiKey 与恢复的项目记录匹配时,代理将重新连接而无需重新注册。

使用以下实践来长期运行和验证此模式。

未经测试的恢复是一种操作风险。定期测试此备份和恢复路径。将以下运行手册视为必须实践,而非可选指导:

  • 按照时间表安排执行测试恢复。将后端数据库恢复到沙盒 MongoDB Ops Manager,并确认其已启动并协调。

  • 确认快照按时出现,并确保时间点恢复窗口保持连续。

  • 查看主 MongoDB Ops Manager 和从 MongoDB Ops Manager 日志中的备份和恢复错误。

监控从节点(secondary node from replica set) Ops Manager 及其备份的后端数据库:

  • 使用 Ops Manager 备份警报来监控后端数据库的快照是否遗漏或失败。

  • 确保时间点恢复窗口保持连续并不断向前。

  • 监控从 Ops Manager 的应用程序数据库和 备份守护程序的健康状态。

下表介绍了该模式在常见故障场景中的行为:

Scenario
影响
恢复

从节点 MongoDB Ops Manager 暂时不可用

新的备份和恢复暂停。主 MongoDB Ops Manager 和所有托管代理继续运行。

恢复从 Ops Manager。备份代理自动恢复。

恢复后从节点(secondary node from replica set) Ops Manager 失败

(无)。恢复应用程序数据库后,主节点 MongoDB Ops Manager 进入恢复模式,并在没有从节点 MongoDB Ops Manager 的情况下进行协调。

无需操作。

两个 MongoDB Ops Manager 实例的损失

您将失去主节点 MongoDB Ops Manager 应用程序数据库的时间点恢复功能。

重建从节点 MongoDB Ops Manager 并重新导入应用程序数据库,或重建主节点 MongoDB Ops Manager 并手动重新导入集群。

运行专用从节点MongoDB Ops Manager时,请考虑以下内容:

  • 从规模上看,从节点(secondary node from replica set) MongoDB Ops Manager 应明显小于生产主节点 (primary node in the replica set) MongoDB Ops Manager。它仅管理主节点 (primary node in the replica set) MongoDB Ops Manager 的后端数据库以进行备份和恢复,而不管理 MongoDB 集群。

  • 根据快照安排和保留策略规划后端数据库的快照存储容量。

  • 考虑运行专用从节点 MongoDB Ops Manager 的额外基础设施和运行成本。