Dimensionamento do oplog
Nesta página
O programamongosync do utilizachange streams do para sincronizar dados entre clusters de origem e destino. mongosync
não acessa o oplog diretamente, mas quando um change stream retorna eventos do passado, os eventos devem estar dentro do intervalo de tempo oplog
.
mongosync
aplica operações em oplog
no cluster de origem aos dados no cluster de destino. Quando as operações que mongosync
não aplicaram rolem do oplog
no cluster de origem, a sincronização falha e o mongosync
sai.
Observação
mongosync
não replica operações applyOps
feitas no cluster de origem durante a sincronização com o cluster de destino.
Durante a sincronização inicial, mongosync
pode aplicar operações em uma taxa mais lenta devido à cópia de documentos simultaneamente. Após a sincronização inicial, mongosync
aplica alterações mais rapidamente e tem maior probabilidade de manter uma posição no oplog
próxima às gravações em tempo real que ocorrem no cluster de origem.
Se você antecipar a sincronização de um grande conjunto de dados ou se planeja pausar a sincronização por um longo período de tempo, poderá exceder a oplog window. Use a configuração oplogSizeMB
para aumentar o tamanho do oplog
no cluster de origem.
Monitore o tamanho do oplog necessário para a sincronização inicial
Determinar oplog window
Para obter a diferença em segundos entre a primeira e a última entrada no oplog
execute db.getReplicationInfo()
. Se você estiver replicando um cluster fragmentado, execute o comando em cada shard.
db.getReplicationInfo().timeDiff
O valor retornado é a janela oplog
mínima do cluster. Se houver vários fragmentos, o menor número será a janela oplog
mínima.
Determinar o atraso de replicação do mongosync
Para obter o valor lagTimeSeconds
, execute o comando /progress . O tempo de atraso é o tempo em segundos entre o último evento aplicado por mongosync
e a hora do evento mais recente atual no cluster de origem.
É uma medida de quão atrasado está o cluster de origem mongosync
.
Validar tamanho do oplog
Se o tempo de atraso se aproximar da janela mínima de oplog
, faça uma das seguintes alterações:
Aumente a janela
oplog
. UsereplSetResizeOplog
para definirminRetentionHours
maior que a janelaoplog
atual.Escale a instância
mongosync
. Adicione CPU ou memória para escalar o nómongosync
para que ele tenha uma taxa de cópia mais alta.
Observação
A oplog window e a taxa de alteração do atraso de replicação podem variar durante a sincronização. Repita essas etapas durante uma migração para monitorar o progresso.