Tutorial pentru setul de replici MongoDB: Exemplu de replicare pas cu pas

Cuprins:

Anonim

Ce este replicarea MongoDB?

Replicarea se referă la procesul de asigurare a faptului că aceleași date sunt disponibile pe mai mult de un server Mongo DB. Acest lucru este uneori necesar pentru a crește disponibilitatea datelor.

Deoarece dacă serverul dvs. principal MongoDB cade din orice motiv, nu va exista acces la date. Dar dacă datele au fost reproduse la un alt server la intervale regulate, veți putea accesa datele de pe alt server, chiar dacă serverul primar eșuează.

Un alt scop al replicării este posibilitatea echilibrării sarcinii. Dacă există mulți utilizatori care se conectează la sistem, în loc să se conecteze toți la un sistem, utilizatorii pot fi conectați la mai multe servere, astfel încât să existe o distribuție egală a încărcării.

În MongoDB, mai multe servere MongDB sunt grupate în seturi numite seturi Replica. Setul de replici va avea un server principal care va accepta toate operațiunile de scriere de la clienți. Toate celelalte instanțe adăugate la set după aceasta vor fi numite instanțe secundare care pot fi utilizate în principal pentru toate operațiile de citire.

În acest tutorial, veți învăța -

  • Set de replici: Adăugarea primului membru folosind rs.initiate ()
  • Set de replici: Adăugarea unui secundar folosind rs.add ()
  • Set de replici: reconfigurarea sau eliminarea utilizând rs.remove ()
  • Depanarea seturilor de replici

Set de replici: Adăugarea primului membru folosind rs.initiate ()

Așa cum am menționat în secțiunea anterioară, pentru a activa replicarea, trebuie mai întâi să creăm un set de replici de instanțe MongoDB.

Să presupunem că, pentru exemplul nostru, avem 3 servere numite ServerA, ServerB și ServerC. În această configurație, ServerA va fi serverul nostru principal și ServerB și ServerC vor fi serverele noastre secundare. Imaginea de mai jos vă va oferi o idee mai bună.

Mai jos sunt pașii care trebuie urmați pentru crearea setului de replici împreună cu adăugarea primului membru la set.

Pasul 1) Asigurați-vă că toate instanțele mongod.exe care vor fi adăugate la setul de replici sunt instalate pe diferite servere. Acest lucru este pentru a vă asigura că, chiar dacă un server cade, celelalte vor fi disponibile și, prin urmare, vor fi disponibile și alte instanțe de MongoDB.

Pasul 2) Asigurați-vă că toate instanțele mongo.exe se pot conecta între ele. Din ServerA, lansați cele 2 comenzi de mai jos

mongo -host ServerB -port 27017
mongo -host ServerC -port 27017

În mod similar, faceți același lucru de la serverele rămase.

Pasul 3) Porniți prima instanță mongod.exe cu opțiunea replSet. Această opțiune oferă o grupare pentru toate serverele care vor face parte din acest set de replici.

mongo -replSet "Replica1"

Unde „Replica1” este numele setului de replici. Puteți alege orice nume semnificativ pentru numele setului de replici.

Pasul 4) Acum că primul server este adăugat la setul de replici, următorul pas este inițierea setului de replici prin emiterea următoarei comenzi rs.initiate ()

Pasul 5) Verificați setul de replici prin emiterea comenzii rs.conf () pentru a vă asigura că replica este configurată corect

Set de replici: Adăugarea unui secundar folosind rs.add ()

Serverele secundare pot fi adăugate la setul de replici doar folosind comanda rs.add. Această comandă preia numele serverelor secundare și adaugă serverele la setul de replicare.

Pasul 1) Să presupunem că dacă aveți ServerA, ServerB și ServerC, care trebuie să facă parte din setul de replici și ServerA, este definit ca serverul principal din setul de replici.

Pentru a adăuga ServerB și ServerC la setul de replici, lansați comenzile

rs.add("ServerB")rs.add("ServerC")

Set de replici: reconfigurarea sau eliminarea utilizând rs.remove ()

Pentru a elimina un server din setul de configurare, trebuie să folosim comanda „rs.remove”

Pasul 1) Mai întâi efectuați o oprire a instanței pe care doriți să o eliminați. Se poate face acest lucru prin emiterea comenzii db.shutdownserver din shell-ul mongo.

Pasul 2) Conectați-vă la serverul principal

Pasul 3) Utilizați comanda rs.remove pentru a elimina serverul necesar din setul de replici. Deci, să presupunem că dacă aveți un set de replici cu ServerA, ServerB și ServerC și doriți să eliminați ServerC din setul de replici, lansați comanda

rs.remove("ServerC")

Depanarea seturilor de replici

Următorii pași sunt aceleași moduri în care se poate depana atunci când se întâmpină probleme cu utilizarea seturilor de replici.

  1. Asigurați-vă că toate instanțele mongo.exe se pot conecta între ele. Să presupunem că dacă aveți 3 servere numite ServerA, ServerB și ServerC. Din serverul A, lansați cele 2 comenzi de mai jos
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
  1. Rulați comanda rs.status. Această comandă oferă starea setului de replici. În mod implicit, fiecare membru își va trimite reciproc mesaje numite mesaje „bătăi de inimă”, ceea ce indică doar faptul că serverul este viu și funcționează. Comanda „status” obține starea acestor mesaje și arată dacă există probleme cu membrii din setul de replici.
  2. Verificați dimensiunea Oplog - Oplog este o colecție din MongoDB care stochează istoricul scrierilor care au fost făcute în baza de date MongoDB. MongoDB folosește apoi acest Oplog pentru a reproduce scrierile către ceilalți membri din setul de replici. Pentru a verifica Oplog, conectați-vă la instanța de membru necesară și rulați comanda rs.printReplicationInfo. Această comandă va arăta dimensiunea jurnalului și cât timp poate păstra tranzacțiile în fișierul jurnal înainte de a deveni complet.

Rezumat:

  • Replicarea se referă la procesul de asigurare a faptului că aceleași date sunt disponibile pe mai mult de un server Mongo DB. Mulți membri (instanțe MongoDB) pot fi adăugați la setul de replici, în funcție de cerințe.