Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

autoCompact

Nesta página

  • Definição
  • Sintaxe
  • Compatibilidade
  • Campos de comando
  • Privilégios necessários
  • Comportamento
  • Saiba mais
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 comando dbStats 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 por dbStats for menor que freeSpaceTargetMB, a compactação do background não terá efeito.

O comando tem a seguinte sintaxe:

db.runCommand(
{
autoCompact: <boolean>,
freeSpaceTargetMB: <int>, // Optional
runOnce: <boolean>, // Optional
}
)

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 .

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 runOnce estiver definido como true, a compactação em segundo plano será executada somente uma vez em cada coleção no nó.

Se runOnce estiver definido como false, a compactação de background será executada continuamente em todas as collections no banco de banco de dados. Se uma collection falhar ao compactar enquanto runOnce for false, o MongoDB pulará temporariamente essa collection e continuará compactando as collections restantes. O MongoDB tenta compactar a collection com falha novamente após aproximadamente um dia.

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.

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.

Se houver um oplog , o MongoDB o excluirá da compactação em segundo plano.

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.

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.

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 .

Voltar

Administração