在备份群集或副本集之前,请确定如何备份数据以及要备份哪些数据。本页介绍在开始备份之前必须考虑的事项。
提示
要学习;了解备份的工作原理,请参阅备份。
备份配置选项
给定系统的备份和恢复要求可能会有所不同,以符合系统所有者制订的成本、性能和数据保护标准。
Ops Manager 企业备份和恢复支持五种备份架构,每种架构都有自己的利弊。在配置和部署备份架构之前,请考虑满足部署的数据保护要求的架构。
例子
考虑一个要求低运营成本的系统。系统所有者可能对备份和恢复配置需要的存储费用有严格的限制。因此,他们可能会接受更长的恢复时间。
反之,考虑一个要求有低 恢复时间目标的系统。 如果备份和恢复配置能够满足恢复要求,则系统所有者可以容忍更高的存储成本。
Ops Manager Enterprise 备份和恢复支持以下备份架构:
SAN 上的文件系统,具有备份的高级功能,例如高可用性、压缩或去重数据消除
一个或多个 NAS 设备上的文件系统
高可用性配置中的 MongoDB 块存储
独立配置中的 MongoDB 块存储
我们提供备份架构建议作为开发自己的数据保护方法的指导。 我们的建议并不涵盖或代表每个场景或部署。
备份方法功能
备份系统功能 | SAN上的文件系统 | NAS上的文件系统 | AWS S3 块存储 | MongoDB HA 块存储 | MongoDB 块存储 |
|---|---|---|---|---|---|
快照类型 | 完成 * | 完成 * | 很多部分 | 很多部分 | 很多部分 |
备份数据去重 | 如果 SAN 支持 | No | 是 | 是 | 是 |
备份数据压缩 | 是 | No | 是 | 是 | 是 |
备份数据复制 | 如果 SAN 支持 | No | No | 是 | No |
备份存储成本 | 更高 | 中型 | 降低 | 更高 | 降低 |
员工管理备份的时间 | 中型 | 中型 | 降低 | 更高 | 中型 |
备份 RTO | 降低 | 中型 | 降低 | 降低 | 中型 |
* 要对文件系统存储执行增量备份, MongoDB 助手会将指定备份路径中的每个存储引擎文件分割成数据区块,并仅将更改的区块传输到MongoDB Ops Manager。MongoDB Ops Manager从收到的区块创建新快照,并从上一个完整备份快照复制剩余未更改的区块。存储到文件系统的每个增量备份快照都可以节省网络 I/O。 每个此类备份快照都包含备份的MongoDB 部署中所有必需文件的完整副本,并且不会对记录进行去重。
注意
何时使用特定的备份方法?
要频繁地对大量数据运行备份并从备份中恢复,请考虑备份到SAN上的文件系统、 Amazon Web Services S3 兼容存储快照存储或配置为副本集或副本集的MongoDB块存储。分片集群。
要在不依赖 MongoDB 数据库的情况下恢复数据,请考虑备份到与 AWS S3 兼容的存储快照存储、一个或多个 NAS 设备或 SAN 上具有文件系统备份高级功能(例如高可用性、压缩、或去重)的文件系统。
为了最大限度地降低内部存储和维护成本,请考虑备份到与 AWS S3 兼容的存储快照存储或 MongoDB 独立块存储。
MongoDB 独立块存储提供的恢复力有限。如果磁盘已满,该块存储可能会脱机。只有在添加额外存储后,才能恢复备份快照。
备份大小调整建议
在调整数据备份大小时,请将2 未压缩数据 的 副本集 大小保持为 TB 或更少。如果数据库的未压缩数据增加到超过2 TB:
对数据库进行分片
将每个分片的未压缩数据保持在 2 TB 或更少
这些大小建议是最佳实践。它们不是 MongoDB 数据库或 Ops Manager 的限制。
备份和恢复可能会使用大量的 CPU、内存、存储和网络带宽。
例子
您提到的网络吞吐量(例如 10 Gbps 或 100 Gbps)是理论上的最大值。该值不考虑网络流量的共享或限制。
考虑以下情况:
您希望备份一个 2 TB 数据库。
您的主机支持从 Ops Manager 到其备份存储的 10 Gbps TCP 连接。
网络连接的丢包率很低,往返延迟时间也很短。
数据的完整备份需要 30 多个小时才能完成。[1]
这不考虑磁盘读取和写入速度,对于单个或镜像 NVMe 存储设备,磁盘读取和写入速度最多为 3 Gbps 读取和 1 Gbps 写入。
完成每个连续增量备份所需的时间取决于写入负载。
如果您将此数据库分成 4 个分区,则每个分区分别运行各自的备份。这会导致备份需要不到 8 小时才能完成。
| [1] | 这些吞吐量数据是使用测量网络吞吐量的行业标准方法计算得出,并假设没有额外的网络压缩。 |
快照频率和保留策略
默认情况下,Ops Manager 每 24 小时拍摄一次数据的基本快照。
如果需要,管理员可以将基本快照的频率更改为6 、 8 、 12或24小时。 MongoDB Ops Manager按安排自动创建快照。 您还可以按需拍摄快照。
Ops Manager 会在下表所列时间段内保留快照。
如果终止部署的备份,Ops Manager 会立即删除当前保留政策日期内的快照。
如果停止部署的备份,Ops Manager 将停止拍摄新快照,但保留现有的快照,直到列出的过期日期为止。
快照 | 默认保留政策 | 最长保留时间策略 |
|---|---|---|
基础快照 | 2 天 | 5 天(如果频率为 24 小时,则为 30 天) |
每日快照 | 0 天 | 1 年 |
每周快照 | 2 周 | 1 年 |
月度快照 | 1 个月 | 7 年 |
您可以通过 Backup 页面上的 Edit Snapshot Schedule 菜单选项更改备份部署的计划。管理员可以通过 API 中的 snapshotSchedule 资源更改快照频率和保留时间。
更改参考时间会更改下一个计划快照的时间。下一次计划快照的时间不能早于当前的下一次快照时间。当前的下一次快照时间是当前参考时间加上快照之间的间隔。
要确定下一个快照的时间,请将当前的下一个快照时间与新的参考时间进行比较:
如果新的参考时间早于当前下次快照时间,则下次快照仍将在当前下次快照时间之后。快照拍摄时间为新的参考时间加上超过当前下一快照时间所需的间隔数。如果在该时间点之后执行更改,Ops Manager 将会在下一个新参考时间点拍摄下一次快照。请参阅下表中前两行的示例。
如果新参考时间在当前的下一个快照时间之后,Ops Manager 将在下一个新参考时间出现时拍摄下一次快照。请参见下表第三行和第四行的示例。
变更时间 | 当前参考时间 | 快照之间的间隔 | 当前下次快照时间 | 新参考时间 | 下一个快照的时间 |
|---|---|---|---|---|---|
08:00 UTC | 12:00 UTC | 6 小时 | 12:00 UTC | 10:00 UTC | 16:00 UTC 今天 |
23:00 UTC | 12:00 UTC | 6 小时 | 00:00 UTC | 10:00 UTC | 04:00 UTC 明天 |
08:00 UTC | 12:00 UTC | 6 小时 | 12:00 UTC | 19:00 UTC | 今天 19:00 UTC |
20:00 UTC | 12:00 UTC | 6 小时 | 00:00 UTC | 19:00 UTC | 01:00 UTC 明天 |
如果您更改计划以保存更少的快照,Ops Manager 不会删除现有快照以符合新计划。要删除不需要的快照,请参阅删除快照。
限制
Ops Manager 不会备份其中的集合总数达到或超过
100,000的部署。Ops Manager 不会复制索引集合选项。
加密
MongoDB Ops Manager可以加密任何备份作业。 使用备份游标而不是头部数据库来加密备份作业。 有关详细信息,请参阅备份守护程序服务。
提示
备份注意事项
一致性和快照
MongoDB Ops Manager在拍摄快照时保持因果一致性,但collStats和 db.[collection].count() 报告的大小统计信息除外。 collStats和db.[collection].count()报告的大小统计信息可能不准确。 MongoDB 分片的 MongoDB Ops Manager协调分片集群的所有分片的时间。 这可确保快照包括截至计划快照时间写入每个分分片和节点的所有文档。
重要
如果您的数据库运行的是MongoDB FCV 4.2 及更早版本,则分片集群和副本集是您可以备份的唯一部署类型。 要备份运行MongoDB FCV4.2 或更早版本的独立运行mongod进程,您必须将其转换为单节点副本集。
目前支持的备份功能
功能 | 运行 FCV 4.2 及更高版本的数据库 | 运行 FCV 4.0 和更早版本的数据库 |
|---|---|---|
使用 WiredTiger 快照备份数据 | ||
使用备份守护程序备份数据 | ||
备份副本集 | ||
备份分片集群 | ||
可以使用命名空间 [2 ] 进行筛选 | ||
可指定同步源数据库 | ||
可以将数据恢复到特定时间点 []3 | ||
可以执行增量备份 []4 | ||
支持使用 KMIP 加密 []5 的Atlas 备份快照 | ||
支持使用本地密钥加密 [] 的Atlas 备份快照6 | ||
支持保存到块存储快照存储 | ||
支持保存到 S3 兼容存储快照存储 | ||
支持保存到文件系统存储 []7 | ||
支持运行 MongoDB Enterprise 的数据库 | ||
支持运行 MongoDB Community 的数据库 | ||
需要在每个 |
| [2] | 仅 Ops Manager 版本 6.0.8 及更高版本支持命名空间过滤。您的 MongoDB 部署的featureCompatibilityVersion值必须为4.0及更早版本,或者6.0.1及更高版本。 |
| [3] | 执行 PIT 恢复需要 Ops Manager 4.2.13 或更高版本。 |
| [4] | 在删除快照后以及块存储区块大小已更改的情况下,Ops Manager 需要对首次备份进行完整备份。增量备份可降低网络传输和存储成本。此功能适用于:
|
| [5] | 查询加密快照需要MongoDB Enterprise 4.2.9及更高版本或4.4.0及更高版本。 |
| [6] | FCV 4.2及更高版本的备份不支持本地密钥加密。 |
| [7] | 备份到文件系统存储的FCV 4.2或更高版本的数据库时会忽略File System Store Gzip Compression Level 。 |
要求和限制
如果您运行的是带有FCV 4.2或更高版本的 MongoDB 4.2或更高版本,要运行备份和恢复,您需要:
必须考虑块存储块大小的变化。如果您未设置块大小并使用默认值,该块大小将从 64 KB 更改为 1 MB。这可能会影响存储使用情况。
必须确保副本集配置中的主机名与MongoDB Agent使用的主机名匹配,或者主机映射包含正确的主机名。 您可以使用rs.conf()验证副本集配置。
仅当运行的是 MongoDB 6.0或更高版本时,才能使用命名空间筛选器列表来定义备份中包含的命名空间。 在 MongoDB 4.2到5.0版本上拍摄的快照始终包含所有命名空间。
不需要同步源数据库。 拍摄快照时,Ops Manager 选择对性能影响最小且快照数据的存储级别重复最多的副本集成员。
MongoDB Agent必须为集群中的每个 节点部署
mongod。
注意
如果 Ops Manager 不管理集群:
向运行备份的 MongoDB 用户授予
backup和clusterAdmin角色。确保运行 MongoDB 助手的操作系统用户对部署的所有数据文件(包括日志文件)具有读取权限。
增量备份
MongoDB Ops Manager在增量备份期间为数据库中的每个文件创建句柄。 在进行增量备份之前,确保打开的文件限制大于文件数。或者,进行完整备份而不是增量备份。
共享文件系统
MongoDB Ops ManagerMongoDB Ops ManagerHTTP如果将 42配置为在 或 HTTPS 负载均衡器后面使用多个 应用程序服务器并使用 文件系统快照 ,则 FCV . 或更高版本的备份快照作业会在一台或多台服务器上并行运行。确保每个MongoDB Ops Manager服务器上都安装了共享文件系统。 MongoDB Ops Manager应用程序服务器可能会打开并写入相同文件的不同偏移量。 确保共享文件系统允许此操作。 否则,您将遇到访问错误。
过期快照的垃圾回收
Ops Manager 使用修饰作业管理过期快照。 根据包含快照的快照存储,这些修饰作业的行为会有所不同:
快照存储 | Groom 作业的工作方式 |
|---|---|
MongoDB 块存储 | 使用额外的磁盘空间,最多为每个作业的活动块数量。 |
文件系统快照存储 | 删除过期的快照 |
S3 快照存储 | 如果 Ops Manager 在修饰作业运行时创建快照,则可能会使用额外的磁盘空间。 Ops Manager 可以在 S3 快照存储上运行并发修饰作业。 |
注意
快照作业和修饰作业不能同时运行。 如果在快照作业运行时启动 groom 作业,则 groom 作业将失败, MongoDB Ops Manager会记录错误并在快照作业完成后自动重试 groom 作业。 如果在 groom 作业运行时启动快照作业,则快照作业将失败, MongoDB Ops Manager会记录错误并在 groom 作业完成后重试快照作业。
要了解有关 groom 作业的更多信息,请参阅Groom 作业。
命名空间过滤器
命名空间过滤允许您指定要备份的数据库和集合。 您可以应用命名空间过滤应用于除admin和local之外的任何数据库以及任何不以system开头的集合。
您可以创建 Blacklist 以包含要排除的数据库和集合,或者创建 Whitelist 以包含要包括的数据库和集合。您可以在开始备份时选择数据库和集合,也可以以后根据需要编辑这些数据库和集合。如果在备份中添加数据以更改过滤器,则需要进行重新同步。
使用黑名单可以防止备份包含日志记录数据、缓存或其他临时数据的集合。排除这些类型的数据库和集合会帮您减少备份时间和费用。使用黑名单通常比使用白名单更可取,因为白名单要求您有意选择加入要备份的每个命名空间。
注意
仅 Ops Manager 6.0.8 和更高版本支持命名空间过滤。MongoDB 部署的 featureCompatibilityVersion 值必须为 4.0和更低或者 6.0.1 和更高。
引擎加密
要备份 MongoDB 集群,请使用 WiredTiger 存储引擎。
如果您当前的支持数据库使用 MMAPv1,请升级到 WiredTiger:
通过使用 WiredTiger,Ops Manager 将备份限制为文件数少于 100,000 个的部署。文件包括集合和索引。
MongoDB 4.2删除了 MMAPv 1存储。 要了解有关存储引擎的更多信息,请参阅 MongoDB 手册中的存储。
重新同步生产部署
对于生产部署,请定期重新同步所有备份的副本集,例如每年一次。重新同步时,将从每个副本集中的从节点读取数据。在重新同步期间,不会生成新快照。
如果您符合以下条件,您可能还需要重新同步备份:
快照 — 助手无法连接到 mongod
对于分片集群,如果备份无法访问 mongod 进程(无论是分片还是配置服务器),则助手无法插入同步 oplog 标记。在这些情况下,Ops Manager 不会创建快照,并显示一条警告消息。
区域备份注意事项
要启用区域备份,必须至少将以下一项与副本集或分片的目标部署地区关联:
此外,您必须将以下每一项与部署区域关联:
如果在为分片集群启用区域备份后将分片添加到该分片集群,则必须为新分片分配部署区域才能继续执行现有分片的备份作业。 在您将部署区域分配给新分片之前,整个分片集群备份作业均处于Misconfigured状态,并且不会生成新快照。 状态为Misconfigured的分片集群会继续生成 oplog 条目。