文档菜单
文档首页
/
MongoDB 手册
/ / /

checkMetadataConsistency

本页内容

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 输出
  • 行为
  • 批量结果
  • 检查索引
  • 示例
checkMetadataConsistency

对集群、数据库或集合的分片元数据执行一系列一致性检查。该命令返回一个游标,其中包含所有或一批找到的不一致性结果。不一致结果

提示

mongosh,此命令还可以通过 db.checkMetadataConsistency()db.collection.checkMetadataConsistency()sh.checkMetadataConsistency() 辅助方法运行.

辅助方法对 mongosh 用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便或需要额外的返回字段的情况下,请使用数据库命令。

在主要维护操作之后,例如升级和降级,运行此命令以检查目录的状态。

默认情况下,该命令不会检查分片间的索引一致性。要检查索引,请设置 checkIndexes 选项。

新功能在以下版本中7.0.

此命令在以下环境中的部署中可用

  • MongoDB Atlas:云中 MongoDB 部署的完全托管服务

注意

此命令在所有 MongoDB Atlas 集群中都受支持。有关 Atlas 对所有命令的支持信息,请参阅 不受支持的命令。

  • 要从 admin 数据库运行命令以检查整个集群的碎片元数据不一致性。

    db.adminCommand( {
    checkMetadataConsistency: 1
    } )
  • 要从数据库上下文运行命令以检查数据库的碎片元数据不一致性。

    use cars
    db.runCommand( {
    checkMetadataConsistency: 1
    } )
  • 要从指定集合运行命令以检查碎片元数据不一致性,请使用集合名称。

    use library
    db.runCommand( {
    checkMetadataConsistency: "authors",
    } )
字段
类型
描述
checkMetadataConsistency
整数或字符串

指定要检查的集合。

1
将命令设置为检查数据库中所有集合的元数据不一致性。如果在 admin 数据库上运行,则检查所有数据库中的所有集合。
"<collection>"
将集合设置为检查元数据不一致性。
checkIndexes
布尔值

设置命令是否还检查分片元数据中的索引。

有关更多信息,请参阅 检查索引。

游标
文档
配置返回游标。
cursor.batchSize
整数
每个批次中包含的不一致性结果的最大数量。

checkMetadataConsistency 命令返回一个游标,其中包含每个在分片元数据中找到的不一致性问题的文档。有关更多信息,请参阅 不一致性类型。

返回文档有以下字段

字段
类型
描述
游标
文档
包含不一致性检查结果的游标。
cursor.id
整数

64位整数,指示游标ID。使用 cursor.id 值与 getMore 命令检索下一批不一致性。

如果游标返回 ID 为 0,则表示没有更多信息批次。

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
}

返回

balancerStop