Atualmente estou testando a replicação em nosso ambiente de desenvolvimento.
Nossa instância mongo atual (primária) tem cerca de 70-80 GB de dados. Criei uma nova instância e a adicionei ao conjunto de réplicas.
Demora cerca de 4 horas para sincronizar as coleções, momento em que começa a reproduzir o oplog para acompanhar as gravações no primário. Mas fazer rs.printSlaveReplicationInfo()
isso mostra que o secundário continua ficando cada vez mais atrasado em relação ao mestre e, eventualmente, falha com o seguinte erro:
OplogStartMissing: error fetching oplog during initial sync :: caused by :: Our last optime fetched: { ts: Timestamp(1581379449, 5879), t: 4 }. source's GTE: { ts: Timestamp(1581379449, 20317), t: 4 }
Nesse ponto, a sincronização inicial é reiniciada. Tanto o mestre quanto o escravo estão usando a versão 4.2
Qual o tamanho do seu oplog?
Pode ser que o oplog esteja preenchendo e substituindo as operações desde que a sincronização começou antes do término da sincronização inicial? Se este for o caso, o novo secundário nunca alcançará. Eu tive esse erro uma vez antes, mas não consigo lembrar o erro exato agora.
Verifique os pontos de início/fim do oplog usando
Se este for o caso, aumente o tamanho do oplog ou pause o aplicativo (se possível).
Vou vasculhar um ticket antigo e verificar o erro que tive com uma falha de sincronização.