对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs 菜单

针对集群一致性的数据验证

Atlas会自动运行数据验证,以主动检测项目中所有集群之间的数据不一致情况。数据验证有助于在静默数据损坏影响应用程序之前将其识别出来。

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

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

  • 内容差异:所有节点上都存在文档,但内容各不相同。

  • 索引不一致:索引项因节点而异。

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

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

验证进程包括以下步骤:

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

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

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

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

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

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

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

数据类型
保留期
说明

运行元元数据

3岁月

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

不一致的详细信息

90 天

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

验证日志

90 天

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

深入分析结果

21 天

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

Atlas仅保留不一致的元数据以进行分析和故障排除。

对于使用客户管理的密钥进行静态加密的集群,验证需要对密钥管理服务的额外访问权限。

验证实例必须使用客户管理的密钥解密数据,才能执行验证检查。这会导致额外的KMS API请求和相关成本。

有关KMS使用情况、成本、安全注意事项和IP白名单配置要求的详细信息,请参阅数据验证KMS使用情况。

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

重要

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

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

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

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

显示项目设置页面。

2
3
4

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