Panoramica della replica in MongoDB

MongoDB è un database orientato ai documenti open source che è altamente scalabile, è un database NoSQL. Può essere utilizzato per l'archiviazione di dati ad alto volume.

MongoDB memorizza i dati in un formato simile a JSON che è molto flessibile e il modello di documento viene quindi mappato agli oggetti nei codici dell'applicazione.

Che cos'è la replica MongoDB?

Per replica intendiamo il clustering di server che esegue la stessa funzionalità. Nel caso di MongoDB, abbiamo server MongoDB per l'archiviazione dei dati. Lo scopo della replica è garantire un'elevata disponibilità dei dati. Nel caso in cui uno dei server si spenga, dovremmo sempre avere una copia dei dati disponibili in un altro server in modo da non comprometterne la disponibilità.

I dati devono essere replicati periodicamente e ad intervalli regolari per assicurarsi che non perdiamo alcun dato e, anche se il server primario si arresta, il secondo dovrebbe essere in grado di soddisfare le richieste dell'utente.

La replica è anche molto efficace in caso di bilanciamento del carico, ad esempio se un numero di utenti sta cercando di leggere o scrivere dati sui server, in tal caso, sarebbe ingiusto se tutta la richiesta fosse inviata o recuperata da un server, dovrebbe esistere un meccanismo di bilanciamento che dovrebbe distribuire equamente il carico ai server disponibili nel cluster in modo che nessun server esaurisca la memoria o la larghezza di banda e vada giù.

Funzionamento della replica nel processo MongoDB

La replica in MongoDB è ottenuta con l'aiuto dei set di repliche. I set di repliche sono il raggruppamento di server MongoDB. Esiste un server primario ed è responsabile della ricezione di tutte le richieste o delle operazioni di scrittura dai client e le altre istanze che verranno aggiunte al set di repliche verranno chiamate come istanze secondarie che saranno responsabili di tutte le operazioni di lettura.

  • Come illustrato nel diagramma sopra, tutti i dati replicano il nodo primario su nodi secondari, in ogni set di repliche sarà presente un solo nodo primario.
  • Ogni volta che si verifica un failover o viene eseguita un'attività di manutenzione, viene eletto un nuovo nodo primario.
  • Una volta ripristinato il failover, il nodo non funzionante ora funge da nodo secondario.
  • L'applicazione client comunica sempre con il nodo primario, a cui segue la replica dei dati su tutti i nodi secondari.

Set di repliche, creazione e operazioni

Al fine di creare una replica completa dei server MongoDB, è necessario innanzitutto creare un set di repliche di istanze MongoDB.

Immaginiamo di avere tre server, repl1, repl2 e repl3 dove sostitu1 è il server primario e i restanti sono quelli secondari.

Aggiunta della replica del nodo primario in MongoDB:

  • Assicurati che le istanze mongo.exe siano installate su tutti i server indicati.
  • Tutti i mongod.exe devono essere in grado di eseguire il ping a vicenda, ovvero sono in grado di comunicare. Per verificare lo stesso, si prega di eseguire i seguenti comandi dai server primari (all'inizio), ovvero sostituire1 nel nostro caso.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Allo stesso modo, possiamo fare lo stesso test anche da altri server

  • Usando il comando mongo –replset, dovremmo essere in grado di avviare la nostra prima istanza mongod.exe.
    mongo –replset “Replica_A” Dove Replica_A è il nome del nostro set di repliche.
  • Per ora, abbiamo aggiunto il primo server al nostro set di repliche, il passo successivo è avviare il set di repliche emettendo il comando rs.initiate ().
  • Il passo successivo è il passo di verifica in cui garantiremo che tutto ciò che abbiamo configurato finora sia corretto, possiamo farlo eseguendo il comando rs.conf ().

Aggiunta della replica del nodo secondario in MongoDB:

Una volta aggiunto il server primario, è facile aggiungere gli altri nodi secondari, possiamo farlo emettendo il comando rs.add ().

Quindi, esegui il comando seguente, dato che repl1 è il nostro server primario e sostitu2 e repl3 sono rispettivamente server secondari.

rs.add ( “repl2”)

rs.add ( “repl3”)

Rimozione dei server dal set di repliche:

Per rimuovere un server da qualsiasi set di repliche, puoi farlo usando il comando rs.remove ().

Ci sono alcuni passaggi che sono coinvolti nel processo come indicato di seguito:

  • Inizialmente, chiudere l'istanza che deve essere rimossa. Questo può essere fatto eseguendo il comando db.shutdownserver tramite la cella mongo.
  • Il prossimo passo è connettersi al server primario.
  • Esegui il seguente comando, supponiamo di avere rispettivamente repl1, repl2 e repl3 come server primario e secondario e vogliamo rimuovere repl3, quindi eseguiremo il seguente comando:

rs.remove ( “repl3”)

Alcuni comandi per la risoluzione dei problemi

  • Tutti i mongod.exe devono essere in grado di eseguire il ping a vicenda, ovvero sono in grado di comunicare. Per verificare lo stesso, si prega di eseguire i seguenti comandi dai server primari (all'inizio), ovvero sostituire1 nel nostro caso.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Allo stesso modo, possiamo fare lo stesso test anche da altri server

  • Rs.status () fornirà lo stato del set di repliche
  • Per controllare l'oplog che è un registro per la registrazione di tutte le operazioni di scrittura che sono state fatte, emettere questo comando - rs.printReplicationInfo.

Vantaggi della replica in MongoDB

Lo scopo della replica è garantire un'elevata disponibilità dei dati. Nel caso in cui uno dei server si spenga, dovremmo sempre avere una copia dei dati disponibili in un altro server in modo che la disponibilità non sia compromessa. La replica è anche molto efficace in caso di bilanciamento del carico, ad esempio se abbiamo un numero degli utenti stanno provando a leggere o scrivere dati sui server.

Per farla breve, i principali vantaggi della replica servono allo scopo seguente:

  1. Alta disponibilità
  2. Bilancio del carico

Conclusione:

Come abbiamo visto, la replica di MongoDB è un processo in cui repliciamo i dati in più di un server al fine di garantire un'alta disponibilità. Questo può essere fatto creando un set di repliche e aggiungendo i server primario e secondario.

Articoli consigliati:

Questa è stata una guida alla replica in MongoDB. Qui discutiamo la creazione, il funzionamento, il funzionamento, i vantaggi e alcuni comandi per la risoluzione dei problemi. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. MongoDB GUI Tools
  2. Comandi MongoDB
  3. MongoDB Alternative
  4. Come installare MongoDB