autoCompact
Nesta página
Definição
autoCompact
Novidades na versão 8.0.
Habilita ou desabilita acompactação de background . Quando ativado, o
autoCompact
itera periodicamente por todos os arquivos disponíveis e executa continuamente a compactação se houver espaço de armazenamento livre suficiente disponível.Antes de ativar o
autoCompact
, execute o comandodbStats
para ver se você tem espaço de armazenamento disponível suficiente para que a compactação continue. Se a quantidade de espaço disponível retornada pordbStats
for menor quefreeSpaceTargetMB
, a compactação do background não terá efeito.
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { autoCompact: <boolean>, freeSpaceTargetMB: <int>, // Optional runOnce: <boolean>, // Optional } )
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
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
Observação
Este comando atualmente não é suportado em clusters MongoDB Atlas .
Campos de comando
O comando pode assumir os seguintes campos opcionais:
Campo | Tipo | Descrição |
---|---|---|
freeSpaceTargetMB | Inteiro | Opcional. Especifica a quantidade mínima de espaço de armazenamento, em megabytes, que deve ser recuperável para que a compactação continue. Padrão: 20 |
runOnce | booleano | Opcional. Se Se |
Privilégios necessários
Para clusters que impõem autenticação, você deve se autenticar como usuário com a ação de privilégio compact
no cluster. A função hostManager
fornece os privilégios necessários para executar autoCompact
.
Comportamento
Bloqueio
Embora o comando autoCompact
em si não bloqueie leituras e escritas, a compactação de background aplica o mesmo comportamento de bloqueio que o comando compact
.
Além disso, o MongoDB retorna um erro se você chamar autoCompact
enquanto a compactação de background estiver ativa. Se você precisar reiniciar o autoCompact
ou executá-lo novamente com opções diferentes, primeiro interrompa a operação de compactação de background atual:
db.runCommand( { autoCompact: false } )
Depois que a compactação de plano de fundo atual estiver desativada, você poderá reiniciar autoCompact
com a nova configuração.
Collections excluídas
Se houver um oplog , o MongoDB o excluirá da compactação em segundo plano.
Considerações de desempenho
Recomendamos executar autoCompact
durante períodos de baixo tráfego.
A compactação verifica regularmente o banco de dados, o que pode levar à sobrecarga de sincronização. Em bancos de dados de alto tráfego, isso pode atrasar ou impedir tarefas operacionais, como fazer backups. Para evitar interrupções inesperadas, desative a compactação antes de fazer um backup.
Conjuntos de réplicas
Você pode executar a compactação em segundo plano em coleções e índices armazenados em um conjunto de réplicas. No entanto, observe as seguintes considerações:
O nó primário não replica o comando
autoCompact
para os nós secundários.Um nó secundário pode replicar dados enquanto a compactação do background está em execução.
Leituras e gravações são permitidas enquanto a compactação em segundo plano está em execução.
Clusters fragmentados
autoCompact
aplica-se apenas a mongod
instâncias. Em um ambiente fragmentado, execute autoCompact
em cada shard separadamente.
Você não pode executar autoCompact
em uma instância mongos
.