MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come ridimensionare MongoDB?

Se stai esaurendo il disco, devi ovviamente procurarti un disco più grande.

Esistono diversi modi per migrare i tuoi dati, dipende davvero dal tipo di tempo di attività di cui hai bisogno. I primi passi ovviamente riguardano il raggruppamento della macchina e la creazione del nuovo volume.

Questi suggerimenti vanno dal più semplice al più difficile.

Puoi portare il database completamente offline per diversi minuti?

In tal caso, eseguire questa operazione (migrazione tramite copia):

  1. Monta il nuovo EBS sul server.
  2. Interrompi la connessione della tua app a Mongo.
  3. Chiudi mongod e attendi che tutto venga scritto (controlla i log)
  4. Copia tutti i file di dati (e probabilmente i log) nel nuovo volume EBS.
  5. Mentre la copia è in corso, aggiorna lo script di inizio di mongod (o il file di configurazione) in modo che punti al nuovo volume.
  6. Avvia mongod e controlla la connessione
  7. Riavvia la tua app.

Puoi mettere offline il database solo per pochi minuti?

In tal caso, esegui questa operazione (slaving e cambia):

  1. Avvia una nuova istanza e monta il nuovo EBS su quel server.
  2. Installa / avvia mongod come --slave che punta al database corrente. (potrebbe essere necessario riavviare la corrente come --master)
  3. Lo slave eseguirà una nuova sincronizzazione. Una volta che lo slave è aggiornato, farai un "passaggio" (passaggi successivi).
  4. Disattiva le scritture dal sistema.
  5. Chiudi il processo mongod originale.
  6. Riavvia il "nuovo" mongo come padrone invece che come schiavo.
  7. Riattiva le scritture di sistema puntando al nuovo master.

Se eseguiti correttamente, gli ultimi tre passaggi possono essere eseguiti in pochi minuti o addirittura secondi.

Non puoi permetterti tempi di inattività?

In tal caso, eseguire questa operazione (master-master ):

  1. Avvia una nuova istanza e monta il nuovo EBS su quel server.
  2. Installa / avvia mongod come master e slave sul database corrente. (potrebbe essere necessario riavviare la corrente come master, tempi di fermo minimi?)
  3. Il nuovo computer dovrebbe eseguire una nuova sincronizzazione.
  4. Una volta che il nuovo computer è aggiornato, cambia il sistema in modo che punti al nuovo server.

So che sembra che quest'ultima versione sia in realtà la migliore, ma può essere un po' rischiosa (al momento della stesura di questo articolo). Il motivo è semplicemente che onestamente ho avuto molti problemi con la replica "Master-Master", soprattutto se non inizi con entrambi attivi.

Se prevedi di utilizzare questo metodo, ti consiglio vivamente di eseguire prima un esercizio più piccolo. Se qualcosa esplode qui, Mongo potrebbe semplicemente cancellare tutti i tuoi file di dati, il che avrà l'effetto di eliminare più cose.

Se ottieni una buona versione di questo per favore posta i comandi, mi piacerebbe vederlo in azione.