Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.checkMetadataConsistency()

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 例子
db.checkMetadataConsistency(options)

对集群或数据库的分片元数据执行一系列一致性检查。 此方法返回一个游标,其中包含找到的全部或批处理的不一致结果。

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。

有关数据库命令,请参阅 checkMetadataConsistency 命令。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

在重大维护操作(例如升级和降级)后运行此方法,或检查集群元数据是否由于MongoDB版本中的错误而不一致或损坏。

默认情况下,该方法不会检查索引在分片之间的一致性。 如果索引检查与创建、删除或修改索引的操作同时运行,则可能会返回不一致的误报。 要使用此方法检查索引,请设置checkIndexes选项。

默认,该方法检查给定数据库的分片元数据。 如果在admin数据库上运行,它会检查整个集群的分片元数据。

有关此方法搜索不一致的更多信息,请参阅不一致类型。

返回:此方法返回带有documents数组的游标,该数组包含分片元数据中发现的每个不一致的文档。

此方法可用于以下环境中托管的部署:

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

注意

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

db.checkMetadataConsistency() 方法使用的语法如下:

db.checkMetadataConsistency( { <options> } )

options文档可以采用以下字段和值:

字段
类型
说明
checkIndexes
布尔

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

默认情况下,此操作处于禁用状态,因为与创建、删除或修改索引的操作并发运行时,它可能会返回不一致的误报。 仅当您知道这些操作不太可能发生时才检查索引。

cursor
文档
配置返回游标。
cursor.batchSize
整型
每个批次中包含的分片元数据不一致文档的最大数量。

要对数据库执行一致性检查,请调用db.checkMetadataConsistency()方法:

use library
db.checkMetadataConsistency()
{
cursorHasMore: false,
documents: [
{
type: "MisplacedCollection",
description: "Unsharded collection found on shard different from database primary shard",
details: {
namespace: "library.authors",
shard: "shard02",
localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4")
}
}
],
}

要对集群执行一致性检查,请从admin数据库调用db.checkMetadataConsistency()方法:

use admin
db.checkMetadataConsistency()
{
cursorHasMore: false,
documents: [
{
type: "MisplacedCollection",
description: "Unsharded collection found on shard different from database primary shard",
details: {
namespace: "library.authors",
shard: "shard02",
localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4")
}
}
],
}

后退

convertShardKeyToHashed