Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Alterar o tamanho do Oplog

Nesta página

  • R. Conecte-se ao membro do conjunto de réplicas
  • B. (Opcional) Verifique o tamanho atual do oplog
  • C. Alterar o tamanho do registro de opção do membro do conjunto de réplica
  • D. (Opcional) Compacto oplog.rs para recuperar espaço em disco

Aviso

Nas versões 3.4 e anteriores do MongoDB, o oplog foi redimensionado descartando e recriando a collection local.oplog.rs.

Nas versões 3.6 e posterior do MongoDB, utilize o comando replSetResizeOplog para redimensionar o oplog como mostrado neste tutorial.

A partir do MongoDB 4.0, o MongoDB proíbe o descarte da collection local.oplog.rs. Para obter mais informações sobre essa restrição, consulte Comportamento da collection Oplog.

Este procedimento altera o tamanho do oplog [1] em cada membro de um conjunto de réplica usando o comando replSetResizeOplog, começando com os membros secundários antes de prosseguir para o primário.

Execute estas etapas em cada membro secundário do conjunto de réplicas primeiro. Depois de alterar o tamanho do oplog de todos os membros secundários, execute estas etapas no primário.

Conecte ao membro do conjunto de réplicas utilizando mongosh:

mongosh --host <hostname>:<port>

Observação

Se o conjunto de réplica aplicar autenticação, você deverá autenticar como um usuário com privilégios para modificar o banco de dados do local, como o papel clusterManager ou clusterAdmin.

Para visualizar o tamanho atual do oplog, alterne para o banco de dados do local e execute o db.collection.stats() na coleção do oplog.rs. stats() exibe o tamanho do oplog como maxSize.

use local
db.oplog.rs.stats().maxSize

O campo maxSize exibe o tamanho da coleção em bytes.

Redimensiona o oplog com o comando replSetResizeOplog . O size é um duplo e deve ser maior que 990 megabytes. Para converter explicitamente o oplog size em mongosh, use o construtor Double() .

A operação a seguir altera o tamanho do oplog do membro do conjunto de réplicas para 16 gigabytes ou 16.000 megabytes.

db.adminCommand({replSetResizeOplog: 1, size: Double(16000)})
[1] O oplog pode ultrapassar seu limite de tamanho configurado para evitar a exclusão do majority commit point.

Reduzir o tamanho do oplog não recupera automaticamente o espaço em disco alocado ao tamanho original do oplog. Você deve executar compact na coleção oplog.rs do banco de dados local para recuperar o espaço em disco. Não há benefícios para executar compact na coleção oplog.rs após aumentar o tamanho do oplog.

Importante

Um membro do conjunto de réplicas pode replicar entradas de oplog enquanto a operação compact está em andamento. Como resultado, não é mais necessário limitar as operações de compactação no oplog ao período de manutenção, pois a replicação do oplog pode continuar normalmente durante a compactação.

Não execute o compact em relação ao principal membro do conjunto de réplica. Conecte uma shell do mongo diretamente à primária (não ao conjunto de réplica) e execute o rs.stepDown(). Se for bem-sucedido, o primário desce. Na shell mongo, execute o comando compact no agora membro secundário.

A seguinte operação executa o comando compact na coleção oplog.rs:

use local
db.runCommand({ "compact" : "oplog.rs" } )

Para agrupamentos que impõem autenticação, autentique como um usuário com a ação de privilégio do compact no banco de dados do local e na coleção do oplog.rs. Para documentação completa sobre requisitos de autenticação do compact, consulte Privilégios exigidos docompact.

← Tutoriais de manutenção do conjunto de réplicas