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

配置集合平衡

在本页

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 示例
configureCollectionBalancing

版本5.3.

配置分片集合的平衡器设置,例如设置集合的块大小并对其进行去碎片。

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

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

注意

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

  • MongoDB Enterprise:基于订阅的自托管MongoDB版本

  • MongoDB Community:开源、免费使用、自托管MongoDB版本

该命令具有以下语法

db.adminCommand(
{
configureCollectionBalancing: "<db>.<collection>",
chunkSize: <num>,
defragmentCollection: <bool>
enableAutoMerger: <bool>
}
)

configureCollectionBalancing 具有以下字段

字段
类型
必要性
描述
配置集合平衡
string
必需
要配置的数据库和分片集合的名称。
chunkSize
integer
可选
为集合设置MiB级别的块大小。建议大小为256、512或更大。有关默认行为详情,请参阅未指定chunkSize时的默认行为。
defragmentCollection
boolean
可选
使平衡器对集合进行碎片整理。默认为false
enableAutoMerger
boolean
可选
是否将此集合考虑在内AutoMerger。默认为true

更多信息,请参阅使用块的数据分区。

要配置块碎片整理节流时间参数,请参阅chunkDefragmentationThrottlingMS

要了解碎片化分片集合,请参阅碎片化分片集合。

如果您未为集合指定chunkSize且之前未设置自定义大小,则使用全局默认的chunkSize进行平衡。

如果您使用configureCollectionBalancingchunkSize: 0,则重置每个集合的chunkSize并使用全局默认的chunkSize进行平衡。

有关配置默认 chunkSize 的更多信息,请参阅 在分片集群中修改范围大小。

如果您未指定集合的 enableAutoMerger 且之前未设置自定义自动合并行为,则默认为 true,并将由 AutoMerger 考虑。

要更改分片集合的块大小,请使用 chunkSize 选项

db.adminCommand( {
configureCollectionBalancing: "test.students",
chunkSize: 256
} )

使用此命令更改给定集合的块大小。

警告

默认情况下,MongoDB 如果块中的文档数大于配置的块大小除以平均文档大小的两倍,则无法移动块。

要查找平均文档大小,请参阅 db.collection.stats() 方法输出的 avgObjSize 字段。

有关更多信息,请参阅 范围大小。

警告

我们不推荐在 MongoDB 6.0.0 至 6.0.3 和 MongoDB 6.1.0 至 6.1.1 版本中使用 defragmentCollection 来碎片化分片集合,因为这些版本的碎片化过程可能会使数据库和集合在长时间内不可用。

要指示均衡器碎片化分片集合,请使用 defragmentCollection 选项

db.adminCommand( {
configureCollectionBalancing: "test.students",
defragmentCollection: true
} )

使用此命令让均衡器碎片化分片集合。要监控数据分片碎片化过程,请使用 balancerCollectionStatus 命令。

有关碎片化分片集合的更多信息,请参阅 碎片化分片集合。

要在更新数据分片大小时碎片化分片集合,请同时使用 defragmentCollection 选项和 chunkSize 选项

db.adminCommand( {
configureCollectionBalancing: "test.students",
chunkSize: 512,
defragmentCollection: true
} )

要显式禁用集合上的自动合并,将 enableAutoMerger 选项设置为 false

db.adminCommand( {
configureCollectionBalancing: "test.students",
enableAutoMerger: false
} )

返回

提交重新分片集合