configureCollectionBalancing
Definição
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { configureCollectionBalancing: "<db>.<collection>", chunkSize: <num>, defragmentCollection: <bool> enableAutoMerger: <bool> } )
Campos de comando
configureCollectionBalancing
tem os seguintes campos:
Campo | Tipo | necessidade | Descrição |
---|---|---|---|
| string | Obrigatório | O nome do reconhecimento de data center e da collection fragmentada para configurar. |
| inteiro | Opcional | Define o tamanho do chunk em MiB para a collection. O tamanho recomendado é 256, 512 ou maior. Para obter detalhes sobre o comportamento padrão, consulte Comportamento padrão quando o chunkSize não é especificado. |
| booleano | Opcional | Faz com que o balanceador desfragmente a collection. Padrão é |
| booleano | Opcional | Se o AutoMerger leva ou não em consideração essa collection. O padrão é |
Para obter mais informações, consulte Partição de dados com parte.
Para configurar o parâmetro de tempo de estrangulamento de desfragmentação de parte, consulte chunkDefragmentationThrottlingMS
.
Para saber mais sobre como desfragmentar coleções fragmentadas, consulte Desfragmentar coleções fragmentadas.
Comportamento
Comportamento padrão quando chunkSize não é especificado
Se você não especificar chunkSize
para uma collection e nenhum tamanho personalizado tiver sido definido anteriormente, o padrão global chunkSize
será usado para o balanceamento.
Especificando chunkSize: 0
Se você usar configureCollectionBalancing
com chunkSize: 0
, o chunkSize
por coleção será redefinido e o padrão global chunkSize
será no para balanceamento.
Para obter mais informações sobre como configurar o padrão chunkSize
, consulte Modificar o tamanho do intervalo em um cluster fragmentado.
Comportamento padrão quando o enableAutoMerger não é especificado
Se você não especificar enableAutoMerger
para uma collection e nenhum comportamento de mesclagem automática personalizado tiver sido definido anteriormente, o padrão será true
e será levado em conta pelo AutoMerger.
Exemplos
Configurar tamanho da parte
Para alterar o tamanho da parte de uma collection fragmentada, use a opção chunkSize
:
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 256 } )
Use este comando para alterar o tamanho da parte para a collection fornecida.
Aviso
Por padrão, o MongoDB não poderá mover um chunk se o número de documentos no chunk for maior que 2 vezes o resultado da divisão do tamanho do chunk configurado pelo tamanho médio do documento .
Para localizar o tamanho médio do documento, consulte o campo avgObjSize
na saída do método db.collection.stats()
.
Para obter mais informações, consulte Tamanho do intervalo.
Coleções de desfragmento
Aviso
Não recomendamos usar defragmentCollection
para desfragmentar collection fragmentadas para MongoDB 6.0.0 a 6.0.3 e MongoDB 6.1.0 a 6.1.1, pois o processo de desfragmentação nessas versões pode tornar reconhecimento de data center e collection indisponíveis por longos períodos de tempo.
Para instruir o balanceador a desfragmentar uma collection fragmentada, use a opção defragmentCollection
:
db.adminCommand( { configureCollectionBalancing: "test.students", defragmentCollection: true } )
Use este comando para que o balanceador desfragmente uma collection fragmentada. To monitor the chunk defragmentation process, use the balancerCollectionStatus
command.
Para saber mais sobre como desfragmentar collection fragmentadas, consulte Desfragmentar collection fragmentadas.
Reconfigurar e desfragmentar collections
Para desfragmentar uma coleção fragmentada enquanto atualiza o tamanho do bloco, use a opção defragmentCollection
e a opção chunkSize
juntas:
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 512, defragmentCollection: true } )
Desabilitar a fusão automática em uma collection
Para desabilitar explicitamente a fusão automática em uma collection, defina a opção enableAutoMerger
para false
:
db.adminCommand( { configureCollectionBalancing: "test.students", enableAutoMerger: false } )