2013-09-05 13 views
5

Attualmente abbiamo un set di repliche con due membri completi & un arbitro. Ora, ho bisogno di promuovere l'arbitro per diventare un membro a pieno titolo. Qual è il modo più semplice per farlo? Non ho più server con cui giocare, quindi ho bisogno di farlo con le macchine che ho.Converti arbitro a membro effettivo

risposta

7

Se ho capito bene: vuoi coprire il tuo arbitro con un server mongo completo sullo stesso hardware. La prima cosa da considerare è se l'hardware dell'arbitro è in grado di supportare il database. Se l'arbitro ha molto meno hardware, allora gli altri 2 nodi probabilmente non andranno a buon fine. Molti arbitri vengono eseguiti su macchine che non supportano un database completo. Se si desidera eseguire questa operazione, è necessario impostare la macchina come nodo completo da zero. Non c'è modo di promuovere automaticamente un arbitro per un membro completo.

Per fare ciò: 1) 1a necessità di arrestare il processo mongod sull'arbitro. Quindi si consiglia di controllare la directory dei dati per assicurarsi che possa contenere i dati, come arbitro non ne aveva nessuno 2) Connettersi al primario con la shell mongo. È possibile utilizzare db.isMaster() nella shell per verificare se il nodo è il primario se non si è sicuri. 3) Utilizzare rs.remove ("") per rimuoverlo dal set. 4) Avviare il nuovo server mongo. Assicurarsi che la directory dei dati sia vuota (verrà copiata dal set di repliche). Il comando è qualcosa come mongod --dbpath --replSet. Potresti avere altre opzioni date la tua configurazione. 5) Sulla corsa principale rs.add() 6) Chiamare rs.conf() per confermare che la configurazione è buona.

Come nota a margine, è anche possibile sincronizzare le directory dati tra il nuovo nodo e il primario utilizzando rsync per la sincronizzazione iniziale. Ma se i tuoi dati sono piccoli, basta fare mongo, sarà più facile. Se è necessario utilizzare rsync, fare riferimento ai documenti per tutti i requisiti. http://docs.mongodb.org/manual/tutorial/expand-replica-set/

Se avete altre domande, fatemelo sapere.

migliore, Charlie

+0

Ho provato questo senza spegnere l'arbitro semplicemente riconfigurando il set di repliche, ed è tenuto in stato di ROLLBACK a tempo indeterminato. Grazie a questa risposta ora so che l'arbitro deve essere spento prima di aggiungerlo nuovamente al set di repliche come pagina secondaria –

+0

@Charlie Sto cercando di sostituire Arbiter con un nuovo secondario completo, quindi dovrei seguire lo stesso processo. 1. Rimuovi l'arbitro 2. Aggiungi nuovo Secondario 3. Attendi che il nuovo Secondario raggiunga il livello. In questo processo fino a quando questo nuovo nodo diventerà secondario, i miei due nodi saranno completamente funzionanti (Arbiter è già stato rimosso), quindi volevo confermare che funzionerà di conseguenza. Grazie – viren