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

验证数据传输

在将应用程序负载从源集群切换到目标集群之前,应验证迁移是否成功。

从 1.9 开始,mongosync 提供嵌入式验证器,可以对源集群和目标集群执行一系列验证检查,以确认同步成功。

您应该在每次同步后验证数据。 如果您计划将应用程序负载从源集群转移到目标集群,这一点非常重要。

验证方法
说明

从 1.9 开始,mongosync 包含嵌入式验证程序,可对源集群和目标集群运行一系列验证检查,以确认迁移成功。 这是满足要求的部署的首选验证方法。

mongosync进程启动时,它会提示用户有关嵌入式验证程序的免责声明。 您必须接受免责声明,或者如果您已经阅读并确认,请使用mongosync --acceptDisclaimer选项启动 以使用验证程序。

验证程序不会检查迁移的每个方面:

  • 要在不支持的命名空间上验证同步,请使用其他验证方法。

  • 要验证索引同步,请使用索引比较方法。

  • 要验证 元数据同步,请使用 元数据比较 方法。

最基本的验证方法是将源集群上每个同步collection中的文档数量与目标集群上的数量进行比较。

在使用此方法验证数据传输之前,mongosync 必须处于 COMMITTED 状态。

仅当针对具有仅插入工作负载的集群运行时,此方法才会验证同步是否成功。

您可以通过比较从源集群同步到目标集群的collection的 MD5 哈希值来验证同步。

在使用此方法验证数据传输之前,mongosync 必须处于 COMMITTED 状态。

While hash comparison ensures that the destination cluster has received all changes from the source, the dbHash command locks the cluster, preventing additional writes until it completes.

无法对分片的集群进行哈希比较。

文档比较

您可以通过比较源集群和目标集群上的文档来验证同步。

编写一个脚本来查询源集群上的集合,然后检查目标集群上是否存在具有相同值的正确文档、索引、集合、元数据和视图。

在使用此方法验证数据传输之前,mongosync 必须处于 COMMITTED 状态。

索引比较

db.collection.getIndexes()要验证索引传输,请在源集群和目标集群上运行 方法并比较结果。

元数据比较

db.getCollectionInfos()要验证元数据的传输,请在源集群和目标集群上运行 方法并比较结果。

分片键比较

要验证分片键是否传输到同步集合,请对 config.collections集合运行查询,以查找 _id 值为目标集合的命名空间的文档。 比较此文档在源集群和目标集群中的 key 值。

示例,对于pets records数据库中名为 的集合,您可以在mongosh 中使用以下查询来验证分片键:

db.getSiblingDB("config").collections.find({ _id : "records.pets" })

迁移验证程序连接到源集群和目标集群,并执行一系列验证检查,比较文档、视图和索引,以确认同步成功。

用于验证数据的具体方法取决于应用程序工作负载和数据的复杂性。

给本页内容打分

在此页面上