L'ajout de membres au Jeu de Réplicas sur MongoDb
Je suis en train de créer un jeu de réplicas avec MongoDb, les serveurs de noms de domaine sont:
nom d'hôte
nom d'hôte-1
nom d'hôte-2
Chacun de ces a tous les noms d'hôtes détaillées dans leur fichier /etc/hosts (Ils;re tous les sous Ubuntu 10.04 64 bits)
Quand je fais une rs.lancer sur un nœud tout semble bien commencer. L'exécution de rs.statut(); affiche:
{
"set" : "vega",
"date" : ISODate("2012-01-22T19:15:55Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "hostname:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"optime" : {
"t" : 1327254848000,
"i" : 1
},
"optimeDate" : ISODate("2012-01-22T17:54:08Z"),
"self" : true
}
],
"ok" : 1
}
Le problème c'est quand j'essaie d'ajouter un nouveau membre du jeu de réplicas. J'utilise la commande rs.ajouter(nom d'hôte-1); et j'obtiens l'erreur suivante:
{
"assertion" : "need most members up to reconfigure, not ok : vega-1:27017",
"assertionCode" : 13144,
"errmsg" : "db assertion failure",
"ok" : 0
}
J'ai essayé de nombreuses combinaisons d'utiliser le nom d'hôte, adresse IP, à la fois avec et sans le numéro de port et j'ai toujours le même problème. Le nom d'hôte de la résolution, j'ai essayé de ping hostname-1 et il fonctionne très bien.
N'quelqu'un a des idées sur ce qui pourrait être à l'origine de ce problème?
Malheureusement, dans les Mongo de la documentation il n'y a pas d'exemples de mise en place d'un jeu de réplicas dans le monde réel scénario, uniquement à l'aide de trois cas sur la même machine, ce qui est clairement inutile.
Merci d'avance pour toute aide!
- En premier lieu je regarde est dans le " mongodb.le journal de fichier pour chaque serveur. Probablement quelques bons conseils là que pour (a) si les serveurs parlent les uns aux autres, à tous, et, si oui, (b) que le serveur principal trouve choquant à propos de menuisier.
Vous devez vous connecter pour publier un commentaire.
Supprimer cette dans votre configuration:
Que l'option est actuellement incompatible avec mongodb jeux de réplicas.
Cette erreur se produit lorsque vous ajoutez des nœuds qui ne sont pas "up" (encore). Il sonne comme soit "hostname-1" est inaccessible (pas dans /etc/hosts, pas de DNS) ou c'est accessible mais n'est pas en cours d'exécution mongodb avec le
replSet
de configuration du jeu de paramètresJ'ai rencontré l'erreur ci-dessus dans Mongo 2.4.9. Mon erreur ici, c'est que je n'ai pas préciser
replSet
dans le mongo config de la nouvelle membre de réplica.rs.add("server2:27017")
bien fonctionné après.D'accord, c'est assez pauvre. Cet exemple devrait être complètement retiré de la documentation.
Il y a une autre façon de commencer un jeu de réplicas et c'est à l'aide de la
rs.configure()
de commande. Vous pouvez également spécifier tous les trois nœuds à la fois, et puis le problème de lars.inititiate()
.Voir ici pour un exemple de spécification de tous les nœuds avant de lancer.
Voir ici pour plus de détails sur les différentes commandes.
problème similaire que j'avais , la solution était d'avoir un fichier de clés.
http://docs.mongodb.org/manual/tutorial/deploy-replica-set-with-auth/#create-the-key-file-to-be-used-by-each-member-of-the-replica-set
Vous pouvez avoir besoin de vérifier la mongod est en cours d'exécution sur le second nœud avant d'ajouter le deuxième nœud node1. Si elle est en cours d'exécution rs.ajouter() et ensuite vérifier rs.d'état().