定义
sh.checkMetadataConsistency(options)对集群的分片元数据执行一系列一致性检查。 此方法返回一个游标,其中包含找到的全部或批处理的不一致结果。
重要
mongosh 方法
This page documents a
mongoshmethod. This is not the documentation for database commands or language-specific drivers, such as Node.js.有关数据库命令,请参阅
checkMetadataConsistency命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
在重大维护操作(例如升级和降级)后运行此方法,或检查集群元数据是否由于MongoDB版本中的错误而不一致或损坏。
默认情况下,该方法不会检查索引在分片之间的一致性。 如果索引检查与创建、删除或修改索引的操作同时运行,则可能会返回不一致的误报。 要使用此方法检查索引,请设置
checkIndexes选项。有关此方法检查不一致的更多信息,请参阅不一致类型。
返回: 此方法返回带有
documents数组的游标,该数组包含分片元数据中发现的每个不一致的文档。
兼容性
此方法可用于以下环境中托管的部署:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
重要
This command is not supported in M0 and Flex clusters. For more information, see Unsupported Commands.
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
注意
checkMetadataConsistency 助手仅在连接到 mongos 时才可执行。 mongod 不支持此方法。
语法
The sh.checkMetadataConsistency() method has the following syntax:
sh.checkMetadataConsistency( { <options> } )
options文档可以采用以下字段和值:
字段 | 类型 | 说明 |
|---|---|---|
| 布尔 | 设置该命令是否还检查分片元数据中的索引。 默认情况下,此操作处于禁用状态,因为与创建、删除或修改索引的操作并发运行时,它可能会返回不一致的误报。 仅当您知道这些操作不太可能发生时才检查索引。 |
| 文档 | 配置返回游标。 |
| 整型 | 每个批次中包含的分片元数据不一致文档的最大数量。 |
| 整型 | 9.0版本新增。 可选。确定命令对所检查集合的分片数据块元数据进行比较的彻底程度的数据块计数阈值。 默认值为 有关更多信息,请参阅数据块检查阈值。 |
例子
sh.checkMetadataConsistency()
{ cursorHasMore: false, documents: [ { type: "MisplacedCollection", description: "Unsharded collection found on shard different from database primary shard", details: { namespace: "test.authors", shard: "shard02", localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4") } } ], }