Considérez, j'ai 4 ensembles répliqués et la config est comme suit:
{
"_id": "rs_0",
"version": 5,
"members" : [
{"_id": 1, "Host": "127.0.0.1:27001"},
{"_id": 2, "Host": "127.0.0.1:27002"},
{"_id": 3, "Host": "127.0.0.1:27003"},
{"_id": 4, "Host": "127.0.0.1:27004"}
]
}
Je peux me connecter à tous les ensembles en utilisant mongo --port <port>
Il existe des documents pour obtenir des informations sur Convertir un fichier autonome en jeu de réplicas , mais quelqu'un peut-il me dire comment reconvertir en fichier autonome à partir de jeux de réplicas?
Supprimez simplement un hôte du jeu de réplicas (rs.remove('Host:port')
), relancez-le sans le paramètre replSet
.
Supprimez tous les hôtes secondaires du jeu de réplicas (rs.remove ('Host: port')), redémarrez le paramètre mongo deamon sans le paramètre replSet (édition /etc/mongo.conf) et les hôtes secondaires redémarrent en mode autonome.
L'hôte principal est complexe, car vous ne pouvez pas le supprimer du jeu de réplicas avec rs.remove. Une fois que vous avez uniquement le noeud principal dans le jeu de réplicas, vous devez quitter mongo Shell et arrêter mongo. Ensuite, éditez le fichier /etc/mongo.conf, supprimez le paramètre replSet et redémarrez mongo à nouveau . Une fois que vous avez lancé 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] ** AVERTISSEMENT: mongod a commencé sans --replSet mais 1 document est présent dans local.system.replset
pour supprimer cet avertissement, vous pouvez effectuer 2 procédures: 1) Déposer 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 un message tel que:
{ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "Host" : "hostprimary:mongoport" } ] }
alors vous allez l'effacer avec:
db.system.replset.remove({ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "Host" : "hostprimary:mongoport" } ] })
et cela vous invitera 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 avertissements
La documentation MongoDB suggère ce qui suit pour effectuer la maintenance sur un membre du jeu de réplicas, qui met le membre du jeu de réplicas en mode autonome pour des opérations ultérieures. Avec peu de modifications, il peut être rendu autonome:
sh.startBalancer(timeout, interval)
.db.adminCommand( { removeShard: "mongodb0" } )
rs.stepDown(300)
db.shutdownServer()
rs.remove("Host:port")
Après cela, le nœud concerné doit être opérationnel en mode autonome.
1) Allez sur le shell mongo sur les serveurs secondaires
2) Arrêtez les serveurs secondaires en utilisant la commande ci-dessous:
use admin
db.shutdownServer()
Après avoir exécuté la commande ci-dessous. Votre serveur principal deviendra automatiquement un serveur autonome.
Pour plus d'informations, veuillez consulter le lien ci-dessous: http://www.tutespace.com/2016/03/stopping-and-starting-mongodb.html
Sur une machine Ubuntu
#replication: #replSetName: rs0
use local
db.dropDatabase()