Alterar o tamanho do registro de opção dos membros do conjunto de réplicas autogerenciados
Nesta página
Aviso
Você não pode descartar a coleção local.oplog.rs
. Para obter mais informações sobre esta restrição, consulte Comportamento da Coleçãooplog .
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.
R. Conecte-se ao membro do conjunto de réplicas
Conecte ao nó do conjunto de réplica usando 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
.
B. (Opcional) Verifique o tamanho atual do oplog
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.
C. Alterar o tamanho do registro de opção do membro do conjunto de réplica
Redimensione o oplog com o comando replSetResizeOplog
. O size
é um double 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 . |
D. (Opcional) Compacto para oplog.rs
recuperar espaço em disco<a class=\" \" href=\" \" title=\" \"><svg xmlns=\" \" width=\" \" height=\" \" fill=\" \" viewbox=\" \" class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\" \"> <path fill=\" \" d=\" \">
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 aos períodos 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
.