Definição
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
Observação
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
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>, enableBalancing: <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 | Sets the chunk size in MiB for the collection. The recommended size is 256, 512, or larger. For details on default behavior, see Default Behavior When chunkSize Is Not Specified. |
| booleano | Opcional | Faz com que o balanceador desfragmente a collection. Padrão é |
| booleano | Opcional | Define se o AutoMerger leva em consideração essa coleção. O padrão é |
| booleano | Opcional | Define se o balanceador opera na collection. Quando definido como Novidades na versão 8.1. |
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
If you use configureCollectionBalancing with chunkSize: 0, the per-collection chunkSize is reset and the global default chunkSize is used for balancing.
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.
Parameter Validation
A partir de 8.2, O MongoDB valida a ortografia dos parâmetros que você passa para configureCollectionBalancing. Se você digitar incorretamente um parâmetro, configureCollectionBalancing não será executado e retornará um erro.
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 } )
Desativação do balanceamento em uma collection
Para desabilitar explicitamente o balanceador em uma collection, defina a opção enableBalancing como false:
db.adminCommand( { configureCollectionBalancing: "test.students", enableBalancing: false } )