MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment convertir un jeu de répliques MongoDB en un serveur autonome

Supprimez tous les hôtes secondaires du jeu de répliques (rs.remove('host:port')), redémarrez le démon mongo sans le paramètre replSet (en modifiant /etc/mongo.conf) et les hôtes secondaires redémarrent en mode autonome.

L'hôte principal est délicat, car vous ne pouvez pas le supprimer du jeu de répliques avec rs.remove. Une fois que vous n'avez que le nœud principal dans le jeu de répliques, vous devez quitter mongo shell et arrêter mongo. Ensuite, vous modifiez le /etc/mongo.conf et supprimez le paramètre replSet et redémarrez mongo. Une fois que vous démarrez mongo, vous êtes déjà en mode autonome, mais le shell mongo affichera un message du type :

2015-07-31T12:02:51.112+0100 [initandlisten] ** ATTENTION :mongod a démarré sans --replSet pourtant 1 documents sont présents dans local.system.replset

pour supprimer l'avertissement, vous pouvez effectuer 2 procédures :1) Supprimer la base de données locale et redémarrer mongo :

use local
db.dropDatabase();

/etc/init.d/mongod restart

2)Ou si vous ne voulez pas être aussi radical, vous pouvez faire :

use local
db.system.replset.find()

et il affichera un message comme :

{ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] }

puis vous l'effacerez en utilisant :

db.system.replset.remove({ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] })

et il vous demandera probablement :

WriteResult({ "nRemoved" : 1 })

Maintenant, vous pouvez redémarrer le mongo et l'avertissement devrait disparaître, et vous aurez votre mongo en mode autonome sans avertissement