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

configureCollectionBalancing

在此页面上

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

5.3 版本中的新增功能

为分片collection配置负载均衡器设置,例如为collection设置数据块大小和进行碎片整理。

此命令可用于以下环境中托管的部署:

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

注意

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

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

该命令具有以下语法:

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

configureCollectionBalancing 有以下字段:

字段
类型
说明
configureCollectionBalancing
字符串
必需:要配置的数据库和分片collection的名称。
chunkSize
整型
可选:设置collection的数据块大小(以 MiB 为单位)。建议的大小为 256、512 或更大。
defragmentCollection
布尔
可选:使负载均衡器对collection进行碎片整理。

有关更多信息,请参阅使用数据块进行数据分区。

如果您没有为collection指定chunkSize ,也没有设置自定义大小,则使用全局默认chunkSize进行负载均衡。

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

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

要更改分片collection的数据块大小,请使用chunkSize选项:

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

使用此命令可更改给定collection的数据块大小。

警告

默认,如果数据段中的数据块数据块大于配置的数据数据块大小除以平均文档大小所得结果的2倍,则MongoDB无法移动该数据段。

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

有关详细信息,请参阅范围大小。

警告

我们不建议使用defragmentCollection对 MongoDB 6.0.0 到 6.0.3 以及 MongoDB 6.1.0 的collection进行碎片整理至 6.1.1、 因为这些版本上的碎片整理过程可能会导致数据库和集合长时间不可用。

要指示负载均衡器对分片collection进行碎片整理,请使用defragmentCollection选项:

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

使用此命令可让负载均衡器对分片collection进行碎片整理。要监控数据段碎片整理进程,请使用balancerCollectionStatus命令。

要在更新数据段大小时对分片集合进行碎片整理,请同时使用defragmentCollection选项和chunkSize选项:

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

后退

commitReshardCollection