J'ai juste ce problème en production. Le commentaire de @maganap (15 mars) m'a sauvé la vie !
En utilisant mongodb 3.2.10, pas besoin de vider l'oplog, faites simplement ceci sur le premier membre :
use local
db.system.replset.remove({})
Redémarrez ensuite le membre. Il aura toujours son oplog et ses données. Exécutez simplement :
rs.initiate()
rs.reconfig(conf)
Où conf est la nouvelle conf. Ensuite, sur chacun des autres membres, exécutez simplement la suppression des données de replset ci-dessus et redémarrez-les. Quand ils commenceront, ils rejoindront l'ensemble.
Tout dépend de votre objectif. Si vous souhaitez réutiliser le mongod
existant en tant que serveur autonome plutôt qu'en tant que membre d'un jeu de répliques, les étapes à suivre seraient :
- Redémarrer le processus mongod sans
--replSet
arguments. -
Supprimez la base de données locale :
use local; db.dropDatabase();