Proces replikacji kończy się niepowodzeniem, nawet jeśli zaczniesz rysować od nowej ścieżki dbp na dodatkowej, więc chodzi o wprowadzenie pewnych zmian w oplogu . Rozmiar oplogu musi być ustawiony na optymalną wartość, aby mógł obsługiwać wszystkie zapisy aplikacji.
Zwiększanie rozmiaru oplogu:
Zamknij główny serwer
use admin
db.shutdownServer()
Zacznij od podstaw jako samodzielny i uruchom na innym porcie, powiedz 37017
Zaloguj się do Mongo w porcie 37017
mongo --port 37017
Usuń starą zawartość z lokalnej bazy danych
Dla bezpieczeństwa miej zapasowe stare oplogowanie przed upuszczeniem
mongodump --db local --collection 'oplog.rs' --port 37017
Upuść starą zawartość w lokalnej bazie danych
use local
db.oplog.rs.drop()
db.me.drop()
db.replset.election.drop()
db.replset.minvalid.drop()
db.startup_log.drop()
Nie można usunąć kolekcji zastępczej, więc usuń ją z wymaganym identyfikatorem:
db.system.replset.remove({ "_id" : "your_replsetname"})
Utwórz nowy oplog o wymaganym rozmiarze, powiedzmy 50 GB
db.runCommand( { create: "oplog.rs", capped: true, size: (50 * 1024 * 1024 * 1024) } )
Możesz także określić rozmiar oplogu w MB w pliku mongod.conf, powiedzmy, że dla 50 GB to 429496 MB
replication:
oplogSizeMB: 429496
Mam nadzieję że to pomoże !!!
Edytować:
Jak wspomniał Nicholas Tolley Cottrell w komentarzach. W wersji 3.6 MongoDB możemy zmienić rozmiar oplogu w czasie wykonywania bez restartu.
Sprawdź aktualny rozmiar oplogu
use local
db.oplog.rs.stats().maxSize
Aby zmienić rozmiar oplogu na 10 GB
db.adminCommand({replSetResizeOplog: 1, size: 10000})