Parar de desfragmentar uma coleção
Você pode parar de desfragmentar uma collection fragmentada com o comando abortUnshardCollection
.
Sobre esta tarefa
Para interromper uma operação unshardCollection
em andamento, execute o comando abortUnshardCollection
.
Observação
A desfragmentação é um processo de gravação intensiva que pode gerar taxas maiores de oplog. Talvez você queira:
definir um tamanho fixo de oplog para prevenir o crescimento ilimitado do oplog.
aumentar o tamanho do oplog para minimizar a chance de um ou mais nós secundários se tornarem obsoletos.
Consulte a documentação Conjunto de réplicas do Oplog para obter mais detalhes.
Compatibilidade
Você pode executar esta tarefa em implementações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Esta tarefa não está disponível no Atlas Shared Tier ou no Atlas Serverless.
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
Restrições
abortUnshardCollection
só pode ser executado em clusters fragmentados.abortUnshardCollection
só pode operar em collections fragmentadas.abortUnshardCollection
só pode operar em uma única collection por vez.Você não pode fazer alterações na topologia , como adicionar ou remover fragmentos ou fazer a transição entre servidores de configuração incorporados e dedicados, até que
abortUnshardCollection
seja concluído.Não é possível executar as seguintes operações na collection que está sendo desfragmentada enquanto
abortUnshardCollection
estiver em andamento:Você não pode executar as seguintes operações no cluster enquanto o
unshardCollection
estiver em andamento:As compilações de índice que ocorrem enquanto
abortUnshardCollection
está em andamento podem falhar silenciosamente.Não crie índices enquanto
abortUnshardCollection
estiver em andamento.Não chame
abortUnshardCollection
se houver construções de índice em andamento.
Controle de acesso
Se seu sistema tiver o controle de acesso ativado, a função enableSharding
concederá a você acesso para executar o comando abortUnshardCollection
.
Passos
Parar de desfragmentar a coleção
Para parar de desfragmentar uma coleção, execute o comando abortUnshardCollection
. O exemplo a seguir interrompe as operações unshardCollection
no us_accounts
no banco de banco de dados sales
:
db.adminCommand( { abortUnshardCollection: "sales.us_accounts", } )
Confirme se a operação de desfragmentação foi interrompida
Para confirmar que a operação unshardCollection
foi interrompida, use o método sh.status()
:
sh.status()
Esta saída de exemplo mostra a coleção como fragmentada com sua chave de fragmento original:
collections: { 'sales.us_accounts': { shardKey: { account_number: 1 }, unique: false, balancing: true, chunkMetadata: [ { shard: 'shard-0', nChunks: 1 }, { shard: 'shard-1', nChunks: 1 } ], chunks: [ { min: { _id: MinKey() }, max: { _id: Long('0') }, 'on shard': 'shard-0', 'last modified': Timestamp({ t: 1, i: 0 }) }, { min: { _id: Long('0') }, max: { _id: MaxKey() }, 'on shard': 'shard-1', 'last modified': Timestamp({ t: 1, i: 1 }) } ], ... } ... }