Alterando o tamanho do Oplog do MongoDB

1

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?

    
por secure212 05.11.2013 / 20:20

2 respostas

0

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:

link

    
por 06.11.2013 / 00:39
0

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 !!!

    
por 17.05.2018 / 09:26