Docs 菜单
Docs 主页
/
MongoDB Ops Manager
/

常见问题解答:备份和恢复

在此页面上

  • 要求
  • 备份功能需要哪个版本的 MongoDB?
  • 备份需要哪些 MongoDB 权限?
  • Ops Manager 如何衡量数据大小?
  • 备份是否适用于所有类型的部署?
  • 为什么备份功能不支持独立运行的实例部署?
  • 操作
  • 备份功能如何工作?
  • 备份会影响我的生产数据库吗?
  • 如何维护启用备份的副本集?
  • 旧版备份代理
  • 我应该在哪里运行备份代理?
  • 是否可以在单个系统上运行备份和监控代理?
  • 我是否可以运行多个备份代理来实现高可用性?
  • 备份代理是否会修改我的数据库?
  • 初始备份同步如何影响数据库性能?
  • 命名空间筛选器
  • 如何防止 Ops Manager 备份collection?
  • 如何更改备份的命名空间?
  • 数据恢复
  • Ops Manager 如何提供时点恢复?
  • 我是否可以提高每 6 小时拍摄一次快照的频率?
  • 我是否可以设置自己的快照保留策略?
  • 创建恢复快照需要多长时间?
  • 备份功能是否执行任何数据验证?
  • 如何恢复快照?
  • 恢复快照时会传递什么?
  • Ops Manager 如何回滚备份数据?
  • 哪些条件需要重新同步?

此常见问题解答解答了有关 Ops Manager 及其如何备份和恢复数据库和集合的常见问题。

的引入以及MongoDB Agent MongoDB4.2FCV 为 的4.2 的新备份进程已经改变了其中一些答案。这些答案包含警告,解释了这些新功能对现有答案的影响。

Ops Manager 版本系列
1.6 至 1.8
2.0 至 3.2
3.4
3.6
4.0
4.2
最低 MongoDB 版本为 2.4
2.4.3
2.4.3
2.4.3
2.4.0 [1]
最低 MongoDB 版本为 2.6
2.6.0
2.6.0
2.6.0
2.6.0
2.6.0
2.6.0 [2]
最低 MongoDB 3.0 版本
3.0.0
3.0.0
3.0.0
3.0.0
3.0.0
3.0.0 [2]
最低 MongoDB 版本为 3.2
3.2.0
3.2.0
3.2.0
3.2.0
3.2.0
最低 MongoDB 版本为 3.4
3.4.0
3.4.0
3.4.0
3.4.0
最低 MongoDB 版本为 3.6
3.6.0
3.6.0
3.6.0
最低 MongoDB 4.0 版本
4.0.0
4.0.0
最低 MongoDB 版本为 4.2
4.2.0
[1] 仅监控
[2]( 1 , 2 )仅监控和备份

如果要备份已启用身份验证的 MongoDB 实例,则 MongoDB 代理需要具有针对 MongoDB 代理备份功能所述的权限。

提示

另请参阅:

Ops Manager 使用以下转换来衡量快照大小并衡量已处理的 oplog 数据量:

  • 1 MB = 1024 2字节 (1 MiB)

  • 1 GB = 1024 3字节 (1 GiB)

  • 1 TB = 1024 4字节 (1 TiB)

  • 对于MongoDB 4.2及更高版本,请参阅数据库备份注意事项。

  • 对于任何具有 FCV 4.0和更早版本的MongoDB数据库,备份不支持独立运行部署。备份完全支持副本集和分片的集群。

MongoDB Ops Manager从oplog复制数据,以提供具有时间点恢复的连续备份。 MongoDB Ops Manager不支持独立运行主机的备份,因为它们没有oplog 。 要支持使用单个mongod实例进行备份,您可以运行单副本集。

提示

另请参阅:

要了解备份功能,请参阅备份进程。

注意

此回答仅适用于运行带有FCV 4.0及更早版本的MongoDB的数据库

备份功能通常对生产 MongoDB 部署的影响很小。 这种影响类似于副本集添加新的从节点的影响。

默认情况下,备份代理会对副本集的从节点成员执行初始同步,这是备份中资源最密集的操作,以限制其影响。 您可以选择配置备份代理以针对副本集的节点执行初始同步,尽管这会增加初始同步操作的影响。

副本集中的大多数操作都是通过 oplog 复制的,因此会被备份过程捕获。 但是,某些操作会进行复制的更改:对于这些操作,您必须让 Ops Manager从当前副本集重新同步以包含更改。

以下操作不会被复制,因此需要重新同步:

  • 通过删除数据数据目录中的数据文件来重命名或删除数据库。 或者,使用MongoDB将复制的操作删除数据库,例如 mongosh 中的db.dropDatabase()

  • 在实例作为独立运行实例运行时更改任何数据。

  • 滚动索引构建。

  • 使用compactrepairDatabase回收大量空间。

    compactrepairDatabase 操作后,重新同步并不是绝对必要的,但可以确保调整数据的MongoDB Ops Manager副本的大小,这意味着恢复速度更快。

提示

另请参阅:

备份功能已转移到激活备份的MongoDB 助手。这将取代单个备份代理。这些信息涵盖了传统备份代理特有的问题。所有这些信息都适用于运行FCV 4.0或更早版本的MongoDB数据库。

在符合以下条件的主机上运行备份代理:

  • 与 MongoDB 实例分开。 这样可以避免系统资源争用。

  • 可以连接到您的 MongoDB 实例。 检查代理与 MongoDB 主机之间连接的网络设置。 有关所需端口的列表,请参阅为代理开放的端口。

  • 至少具有高于平台要求的 2 个 CPU 内核和 3 GB RAM。 每次运行备份作业时,备份代理都会进一步影响主机性能。

不存在阻止备份代理和监控在单个系统或主机上运行的技术限制。 但是,这两个代理都有资源要求,并且在单个系统上运行这两个代理可能会影响这些代理支持 Ops Manager 中部署的能力。

备份代理所需的资源取决于新oplog条目的速率和大小(即每小时生成的oplog总量为 GB)。 监控所需的资源取决于受监控的mongod 实例数量以及 实例提供的 数据库 mongod总数。

您可以运行多个备份代理以实现高可用性。 如果这样做,备份代理必须在不同的主机上运行。

当您运行多个备份代理时,每个项目只有一个代理是主代理。 主代理执行备份。 其余代理完全空闲,除了将其状态记录为备用代理并定期询问 Ops Manager 是否应成为主代理。

备份代理会定期将一个称为检查点的小令牌写入源数据库的 oplog。 这些令牌为备份提供心跳,对源部署没有影响。 每个词元小于 100 字节。

重要

您可以对运行功能兼容性版本为4.0或更早版本的 MongoDB 的集群使用检查点。 检查点已从FCV为4.2或更高版本的 MongoDB 实例中删除。

提示

另请参阅:

初始备份同步的影响应类似于同步新的从节点副本集成员。 备份代理不会限制其活动,并会尝试尽快执行同步。

注意

仅 Ops Manager 6.0.8 和更高版本支持命名空间过滤。MongoDB 部署的 featureCompatibilityVersion 值必须为 4.0和更低或者 6.0.1 和更高。

Ops Manager 提供了一个命名空间 filter,允许您指定要备份的 collection 或数据库。

要编辑筛选器,请参阅编辑备份的设置。 更改命名空间筛选器可能需要重新同步。 如果是这样,Ops Manager 将处理重新同步。

作业无法绑定到备份守护程序的最常见原因是守护进程没有空间用于备份副本集的本地副本。

要增加容量以便绑定备份作业,您可以:

  • 添加一个额外的备份守护程序。

  • 增加保存head directory的文件系统的大小。

  • 在 FCV 4.0 及更早版本上,将head database数据移动到具有更多空间的新卷,并创建符号链接或配置文件系统挂载点,以便守护进程可以使用原始路径访问数据。

    FCV 4.2及更高版本不使用头部数据库。

如果您发现备份日志中的applyOps命令出现一致错误,则可能表示守护进程已耗尽空间。

要增加守护进程的空间以支持持续操作,您可以:

  • 增加保存head directory的文件系统的大小。

  • 对于 FCV 4.0 及更早版本,将head database数据移动到具有更多空间的新卷,并创建符号链接或配置文件系统挂载点,以便守护进程可以使用原始路径访问数据。

    FCV 4.2及更高版本不使用头部数据库。

Ops Manager 会生成数据文件的副本,您可以使用该副本为新部署播种。

重要

Ops Manager 4.2.13及更高版本通过FCV 4.2或更高版本支持此功能。

当您trigger恢复时,Ops Manager会创建指向此快照的链接。单击后,Ops Manager 将从快照存储中检索数据块并将它们流式传输到目标主机。

然后,在该主机上运行的 MongoDB 备份恢复实用程序会下载并应用 oplog 条目,以达到指定的时间点。

Ops Manager 提供给定时间点恢复的能力取决于快照的保留策略和配置的时间点窗口。

要了解有关保留策略和点窗口的更多信息,请参阅编辑快照安排和保留策略。

不可以。Ops Manager 不支持大于每 6 小时一次的快照安排。有关更多信息,请参阅快照频率和保留策略。

是的。 您可以通过 Edit Snapshot Schedule菜单选项更改备份部署的安排。管理员可以通过 API 中的 snapshotSchedule 资源 更改 快照频率和保留策略 。

Ops Manager 以压缩形式将所有备份从 Ops Manager 主机传输到基础架构。

此外,时间点恢复取决于主机必须应用于收到的快照才能前滚到请求的备份时间点的 oplog 条目数量。

备份执行基本的损坏检查,并在任何组件(例如代理)关闭或损坏时发出警报,但不执行显式数据验证。 当检测到损坏时,Ops Manager 为谨慎起见,会使当前的备份失效并发送警报。

您可以通过 Ops Manager 请求恢复,然后可以选择要恢复的快照以及希望 Ops Manager 如何提供恢复。 所有恢复都需要双重身份验证。 如果您设置了短信,Ops Manager 将通过短信发送授权代码。您必须在备份界面中输入授权代码才能开始恢复过程。

注意

在印度,使用 Google 身份验证器进行双重身份验证。 Google 身份验证器比通过短信发送到印度手机号码(即 国家/地区代码 91)。

Ops Manager 将恢复作为 MongoDB 数据文件的tar.gz存档提供。

要了解有关恢复的更多信息,请参阅恢复 MongoDB 部署。

重要

对于运行MongoDB FCV4.2 或更高版本的 部署,回滚不会影响MongoDB Ops Manager 中的备份数据。从FCV 4.2 开始, MongoDB Ops Manager仅保留时间戳晚于多数提交点(含该点)的快照。

如果您的MongoDB部署遇到回滚,则MongoDB Ops Manager也会回滚已备份的数据。

MongoDB Ops Manager当 尾随游标 发现写入操作的时间戳或哈希不匹配时, 会检测到回滚。MongoDB Ops Manager进入回滚状态并测试副本集oplog 主 节点的 中的三个点,以找到历史中的共同点。MongoDB Ops ManagerMongoDB 回滚与MongoDB 从节点回滚的不同之处在于,公共点不一定是 最近 的公共点。

当 Ops Manager 找到公共点时,该服务会使该点之后的 oplog 条目和快照失效,并回滚到该公共点之前的最新快照。然后,Ops Manager 将恢复正常的备份操作。

如果 Ops Manager 找不到公共点,则需要重新同步

重要

此功能与采用FCV 4.2的MongoDB 4.2不兼容。

如果备份代理的尾随游标跟不上部署的oplog ,则必须重新同步备份。

在以下情况下,可能会出现这种情况:

  • 您的应用程序会定期生成大量数据,从而缩小主节点的 oplog window,从而导致数据写入 oplog 的速度超过 Ops Manager 消耗数据的速度。

  • 如果备份代理在预配不足或过度使用的计算机上运行,并且无法跟上 oplog 活动。

  • 如果备份代理关闭的时间超过oplog大小允许的时间。 如果您关闭代理(例如出于维护目的),请及时重新启动它们。 有关oplog 大小的更多信息,请参阅 oplogMongoDB手册中的 副本集 。

  • 如果删除所有副本集数据并部署具有相同名称的新副本集,在定期拆除和重建部署的测试环境中可能会发生这种情况。

  • 如果存在回滚,Ops Manager 无法在 oplog 中找到点。

  • 如果 oplog 事件尝试更新副本集备份中不存在的文档,例如从数据与主节点不一致的从节点进行同步时可能会发生这种情况。

  • 如果以滚动方式创建索引。

后退

常见问题解答:自动化