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

集群一致性的数据验证

Atlas 会自动运行数据验证,以主动检测项目中所有集群的数据不一致。数据验证有助于在数据损坏影响应用程序之前识别隐藏的数据损坏。

当副本集节点之间的数据存在差异但未触发错误或警告时,会发生静默数据损坏。这可能是由于硬件故障、网络问题或其他系统级问题导致的。示例包括:

  • 丢失文档:文档存在于某些节点上,但在其他节点上丢失。

  • 内容差异:文档存在于所有节点,但它们之间的内容存在差异。

  • 索引不一致:索引项在节点之间存在差异。

如果没有验证,这些不一致可能会保持未检测状态,并导致应用程序错误、数据丢失或查询结果不正确。

Atlas 通过比较副本集节点之间的数据,对副本集节点之间的数据进行验证,以检测静默数据损坏。

验证过程包括以下步骤:

  1. 在与集群相同的云提供商和区域中创建临时验证实例。

  2. 将节点快照恢复到验证实例。

  3. 比较节点快照中的数据以检测不一致。

  4. 检测到不一致时,将验证结果存储在 Atlas 系统(Amazon Web Services us-east-1)中。

数据验证在项目中的所有集群上自动运行。如果有必要,可以在项目级别禁用验证。

在验证过程中,Atlas 会读取数据库和集合数据以计算哈希值并检测不一致。Atlas 不会修改集群数据或存储解密的文档内容。解密数据只在验证过程中临时存在,不会持久存储。

当验证检测到不一致时,Atlas 仅存储以下元数据:

数据类型
保留期
说明

运行元数据

3 年

验证运行状态、时间戳和不一致性总结,包括按数据库、集合和不一致性类型进行的计数。

不一致的详细信息

90 天

数据库名称、集合名称、文档 ID 以及未通过验证的文档的不一致类型。

验证日志

90 天

详细验证输出存储在 S3 中。可通过 Atlas 用户界面进行故障排除。

钻取结果

21 天

验证过程中使用的中间哈希结果。

Atlas 仅保留不一致元数据以供分析和疑难排除。

对于使用客户托管密钥的带有静态加密的集群,验证需要额外访问您的 Key Management Service。

验证实例必须使用客户数托管密钥解密数据以执行验证检查。这会导致额外的 KMS API 请求和相关费用。

有关 KMS 使用、费用、安全考虑和 IP 允许列表配置要求的详细信息,请参阅 数据验证 KMS 使用。

您可以对项目中的所有集群禁用数据验证。

重要

禁用数据验证意味着 Atlas 无法主动检测集群中的数据不一致。仅当您有阻止验证运行的特定要求时,才禁用验证。

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 图标 Project Overview 旁边的图标。

显示项目设置页面。

2
3
4

禁用验证会影响项目中的所有集群,包括加密集群和非加密集群。