2012-01-22 9 views
18

Sto cercando di creare un set di repliche con MongoDb, i server nomi host sono:Aggiunta di membri a Replica Situato su MongoDb

hostname hostname-1 hostname-2

Ognuno di questi ha tutta la pertinente nomi host dettagliati nel loro file/etc/hosts (Sono tutti in esecuzione Ubuntu 10.04 64-bit)

Quando faccio un rs.initiate su un nodo, tutto sembra iniziare bene. Esecuzione di rs.status(); mostra:

{ 
    "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 
} 

Il problema nasce quando si tenta di aggiungere un nuovo membro al set di repliche. Io uso il comando rs.add (hostname-1); e ottengo il seguente errore:

{ 
    "assertion" : "need most members up to reconfigure, not ok : vega-1:27017", 
    "assertionCode" : 13144, 
    "errmsg" : "db assertion failure", 
    "ok" : 0 
} 

Ho provato numerose combinazioni di utilizzando l'indirizzo IP host, sia con che senza il numero di porta e ho sempre lo stesso problema. Il nome host si sta risolvendo, ho provato ping hostname-1 e funziona perfettamente.

Qualcuno ha qualche idea su cosa potrebbe causare questo problema?

Sfortunatamente nella documentazione di Mongo non ci sono esempi di impostazione di un set di repliche nello scenario del mondo reale, utilizzando solo tre istanze sulla stessa macchina che è chiaramente inutile.

Grazie in anticipo per qualsiasi aiuto!

+0

Primo posto mi piacerebbe guardare si trova nel file 'mongodb.log' per ogni server. Probabilmente ci sono alcuni buoni suggerimenti in merito a (a) se i server si stanno parlando tra di loro, e in tal caso (b) che cosa il server primario ritiene discutibile riguardo al falegname. – dampier

risposta

2

Unfortunately in the Mongo documentation there are no examples of setting up a replica set in the real world scenario, only using three instances on the same machine which is clearly useless.

D'accordo, è piuttosto scadente. Questo esempio dovrebbe essere completamente rimosso dai documenti.

C'è un altro modo per avviare un set di repliche e cioè utilizzando il comando rs.configure(). È inoltre possibile specificare tutti e tre i nodi contemporaneamente e quindi emettere lo rs.inititiate().

See here per un esempio di specifica di tutti i nodi prima dell'avvio.

See here per ulteriori dettagli sui vari comandi.

10

Questo errore si verifica quando si aggiungono nodi che non sono "in alto" (ancora). Suona come sia "hostname-1" non è raggiungibile (non in/etc/hosts, senza DNS) o non è raggiungibile, ma non è in esecuzione MongoDB con il parametro di configurazione replSet impostato

14

Rimuovere questo nella configurazione:

bind_ip = 127.0.0.1 

Questa opzione è attualmente incompatibile con i set di repliche mongodb.

+3

o impostarlo su bind_ip = 0.0.0.0 –

3
 
{ 
    "errmsg" : "exception: need most members up to reconfigure, not ok : server2:27017", 
    "code" : 13144, 
    "ok" : 0 
} 

Ho riscontrato l'errore sopra riportato in Mongo 2.4.9. Il mio errore qui è che non ho specificato replSet nella configurazione di mongo del nuovo membro di replica. rs.add("server2:27017") ha funzionato bene dopo.

0

Potrebbe essere necessario controllare che il mongod sia in esecuzione sul secondo nodo prima di aggiungere il secondo nodo a node1. Se è in esecuzione rs.add(), quindi controllare rs.status().

Problemi correlati