checkMetadataConsistency
定义
checkMetadataConsistency
对集群、数据库或集合的分片元数据执行一系列一致性检查。该命令返回一个游标,其中包含所有或一批找到的不一致性结果。不一致结果。
提示
在
mongosh
,此命令还可以通过db.checkMetadataConsistency()
、db.collection.checkMetadataConsistency()
或sh.checkMetadataConsistency()
辅助方法运行.辅助方法对
mongosh
用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便或需要额外的返回字段的情况下,请使用数据库命令。在主要维护操作之后,例如升级和降级,运行此命令以检查目录的状态。
默认情况下,该命令不会检查分片间的索引一致性。要检查索引,请设置
checkIndexes
选项。新功能在以下版本中7.0.
兼容性
此命令在以下环境中的部署中可用
MongoDB Atlas:云中 MongoDB 部署的完全托管服务
注意
此命令在所有 MongoDB Atlas 集群中都受支持。有关 Atlas 对所有命令的支持信息,请参阅 不受支持的命令。
MongoDB 企业版:基于订阅的、自我管理的 MongoDB 版本
MongoDB 社区版:开源的、免费使用且可自我管理的 MongoDB 版本
语法
要从
admin
数据库运行命令以检查整个集群的碎片元数据不一致性。db.adminCommand( { checkMetadataConsistency: 1 } ) 要从数据库上下文运行命令以检查数据库的碎片元数据不一致性。
use cars db.runCommand( { checkMetadataConsistency: 1 } ) 要从指定集合运行命令以检查碎片元数据不一致性,请使用集合名称。
use library db.runCommand( { checkMetadataConsistency: "authors", } )
命令字段
字段 | 类型 | 描述 |
---|---|---|
checkMetadataConsistency | 整数或字符串 | 指定要检查的集合。
|
checkIndexes | 布尔值 | 设置命令是否还检查分片元数据中的索引。 有关更多信息,请参阅 检查索引。 |
游标 | 文档 | 配置返回游标。 |
cursor.batchSize | 整数 | 每个批次中包含的不一致性结果的最大数量。 |
输出
checkMetadataConsistency
命令返回一个游标,其中包含每个在分片元数据中找到的不一致性问题的文档。有关更多信息,请参阅 不一致性类型。
返回文档有以下字段
字段 | 类型 | 描述 |
---|---|---|
游标 | 文档 | 包含不一致性检查结果的游标。 |
cursor.id | 整数 | 64位整数,指示游标ID。使用 如果游标返回 ID 为 |
cursor.ns | 字符串 | 检查不一致性的数据库和集合。 |
cursor.firstBatch | 数组 | 元数据一致性检查的结果。 |
ok | 布尔值 | 指示命令是否成功。 |
行为
批处理结果
checkMetadataConsistency
命令以批量的方式返回结果。要自定义批量大小,请使用 batchSize
选项
var cur = db.runCommand( { checkMetadataConsistency: 1, cursor: { batchSize: 10 } } )
如果 cursor.id
字段大于 0,可以使用 getMore
命令来检索下一批结果。
检查索引
checkMetadataConsistency
命令默认不检查索引。要检查元数据一致性和索引,请使用 checkIndexes
选项
db.runCommand( { checkMetadataConsistency: 1, checkIndexes: true } )
示例
使用 runCommand()
运行 checkMetadataConsistency
命令
db.runCommand( { checkMetadataConsistency: 1 } )
示例输出
{ cursor: { id: Long("0"), ns: "test.$cmd.aggregate", firstBatch: [ { 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") } } ], }, ok: 1 }