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

使用哈希比较进行验证

您可以通过比较从源集群同步到目标集群的集合的 MD5 哈希来验证同步。虽然哈希比较可确保目标集群已收到来自源的所有更改,但dbHash 命令会锁定集群,在完成之前阻止其他写入。此进程也可能比使用文档计数进行验证慢得多。

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

如果您需要同步分片集群或较早版本的 MongoDB,或者您的应用程序工作负载不接受这些锁,请使用其他验证方法。

dbHash 命令仅对当前数据库中的集合进行哈希处理,collections字段接受裸集合名称。如果在集合名称中包含数据库名称,例如 accounts.us_accounts,则 dbHash 找不到匹配的集合,并在两个集群上返回空输入的哈希值。要对多个数据库中的集合进行哈希处理,请依次切换到每个数据库,对每个数据库运行一次命令,然后分别比较每个数据库的 md5 值。

1

切换到包含同步集合的数据库,然后在源集群上运行dbHash 命令。在 collections字段中,按名称列出同步中包含的每个集合,不带数据库前缀。然后,返回 md5 输出字段:

use accounts
db.runCommand({
dbHash: 1,
collections: [
"us_accounts",
"eu_accounts",
...
]}).md5
9a1e4b7c2f8d3056ae91cbd4f72608b3

运行此命令时,检索目标哈希值。

2

切换到包含同步集合的数据库,然后对目标集群运行dbHash 命令。在 collections字段中,按名称列出同步中包含的每个集合,不带数据库前缀。然后,返回 md5 输出字段:

use accounts
db.runCommand({
dbHash: 1,
collections: [
"us_accounts",
"eu_accounts",
...
]}).md5
9a1e4b7c2f8d3056ae91cbd4f72608b3

请注意哈希值。

3

比较每个集群的md5值。 如果两个集群返回相同的 MD5 值,则同步成功。

给本页内容打分