O oplog padrão é 5% do espaço livre no Linux, então eu suspeito que você não tenha muito disponível. Para redimensionar seu oplog, você precisa seguir o procedimento descrito aqui:
durante o carregamento de dados para mongodb, eu continuo recebendo "erro RS102 muito velho para recuperar o atraso" ... Após a pesquisa, descobri que o meu tamanho oplog padrão para uma máquina Linux de 32 bits é muito pequeno. Eu gostaria que fosse 300 mb .. Alguém sabe o passo para fazer isso?
O oplog padrão é 5% do espaço livre no Linux, então eu suspeito que você não tenha muito disponível. Para redimensionar seu oplog, você precisa seguir o procedimento descrito aqui:
MongoDB version 3.6 +
No MongoDB version 3.6
, é mais fácil alterar o tamanho do oplog no tempo de execução sem reiniciar.
Verifique o tamanho atual do oplog
use local
db.oplog.rs.stats().maxSize
Para alterar o tamanho do oplog para 300 MB
db.adminCommand({replSetResizeOplog: 1, size: 300})
MongoDB version less than 3.6
Para versões mais antigas, você precisa seguir as etapas abaixo:
Desligue o servidor principal
use admin
db.shutdownServer()
Comece como principal autônomo & executado em porta diferente dizer 37017
Faça login no mongo na porta 37017
mongo --port 37017
Remover o conteúdo antigo no banco de dados local
Por segurança, tenha o backop do antigo oplog antes de largar
mongodump --db local --collection 'oplog.rs' --port 37017
Descarte o conteúdo antigo no banco de dados local
use local
db.oplog.rs.drop()
db.me.drop()
db.replset.election.drop()
db.replset.minvalid.drop()
db.startup_log.drop()
A coleção do Replset não pode ser descartada, remova-a com o ID necessário:
db.system.replset.remove({ "_id" : "your_replsetname"})
Crie um novo oplog de tamanho necessário, digamos 300 MB
db.runCommand( { create: "oplog.rs", capped: true, size: (300 * 1024 * 1024) } )
Além disso, você pode especificar o tamanho do oplog em MB no arquivo mongod.conf, digamos, para 300 MB:
replication:
oplogSizeMB: 300
Espero que isso ajude !!!
Tags mongodb replication