La replicació és una característica clau de MongoDB que permet la duplicació de dades en múltiples servidors. Això proporciona alta disponibilitat i redundància, assegurant que les dades estiguin disponibles fins i tot en cas de fallada d'un servidor. En aquest tema, explorarem els conceptes bàsics de la replicació, com configurar un conjunt de rèpliques i com gestionar-lo.
Conceptes Bàsics de la Replicació
Què és un Conjunt de Rèpliques?
Un conjunt de rèpliques és un grup de processos mongod
que mantenen les mateixes dades. En un conjunt de rèpliques, un node actua com a primari (primary) i els altres com a secundaris (secondary). El node primari rep totes les operacions d'escriptura, mentre que els nodes secundaris repliquen les dades del primari i poden servir operacions de lectura.
Beneficis de la Replicació
- Alta Disponibilitat: Si el node primari falla, un dels nodes secundaris pot ser elegit com a nou primari.
- Redundància de Dades: Les dades es repliquen en múltiples nodes, reduint el risc de pèrdua de dades.
- Escalabilitat de Lectura: Les operacions de lectura es poden distribuir entre els nodes secundaris, millorant el rendiment.
Configurant un Conjunt de Rèpliques
Pas 1: Iniciar els Nodes mongod
Inicia tres instàncies de mongod
en diferents ports. Per exemple:
mongod --replSet "rs0" --port 27017 --dbpath /data/db1 mongod --replSet "rs0" --port 27018 --dbpath /data/db2 mongod --replSet "rs0" --port 27019 --dbpath /data/db3
Pas 2: Connectar-se al Node Primari
Connecta't a una de les instàncies mongod
:
Pas 3: Configurar el Conjunt de Rèpliques
Crea una configuració per al conjunt de rèpliques:
rsconf = { _id: "rs0", members: [ { _id: 0, host: "localhost:27017" }, { _id: 1, host: "localhost:27018" }, { _id: 2, host: "localhost:27019" } ] }
Pas 4: Iniciar el Conjunt de Rèpliques
Inicia el conjunt de rèpliques amb la configuració creada:
Pas 5: Verificar l'Estat del Conjunt de Rèpliques
Utilitza el següent comandament per verificar l'estat del conjunt de rèpliques:
Gestió del Conjunt de Rèpliques
Elecció del Primari
En cas de fallada del node primari, els nodes secundaris elegiran automàticament un nou primari. Aquest procés es coneix com a elecció (election).
Sincronització de Dades
Els nodes secundaris sincronitzen les dades del node primari. Això es fa mitjançant el registre d'operacions (oplog), que és una col·lecció especial que registra totes les operacions d'escriptura.
Lectures des dels Nodes Secundaris
Per defecte, totes les lectures es fan des del node primari. No obstant això, es poden configurar les lectures des dels nodes secundaris utilitzant la configuració de lectura (read preference):
Exercici Pràctic
Exercici 1: Configurar un Conjunt de Rèpliques
- Inicia tres instàncies de
mongod
en diferents ports. - Connecta't a una de les instàncies i configura el conjunt de rèpliques.
- Verifica l'estat del conjunt de rèpliques.
Solució
-
Inicia les instàncies de
mongod
:mongod --replSet "rs0" --port 27017 --dbpath /data/db1 mongod --replSet "rs0" --port 27018 --dbpath /data/db2 mongod --replSet "rs0" --port 27019 --dbpath /data/db3
-
Connecta't a una de les instàncies:
mongo --port 27017
-
Configura el conjunt de rèpliques:
rsconf = { _id: "rs0", members: [ { _id: 0, host: "localhost:27017" }, { _id: 1, host: "localhost:27018" }, { _id: 2, host: "localhost:27019" } ] } rs.initiate(rsconf)
-
Verifica l'estat del conjunt de rèpliques:
rs.status()
Resum
En aquesta secció, hem après què és la replicació a MongoDB, els beneficis que proporciona i com configurar un conjunt de rèpliques. També hem vist com gestionar el conjunt de rèpliques i com distribuir les lectures entre els nodes secundaris. La replicació és una característica essencial per assegurar l'alta disponibilitat i la redundància de les dades en una base de dades MongoDB.
Curs de MongoDB
Mòdul 1: Introducció a MongoDB
Mòdul 2: Operacions CRUD a MongoDB
Mòdul 3: Modelatge de Dades a MongoDB
Mòdul 4: Indexació i Agregació
Mòdul 5: Funcions Avançades de MongoDB
Mòdul 6: Rendiment i Seguretat
- Optimització del Rendiment
- Còpia de Seguretat i Restauració
- Millors Pràctiques de Seguretat
- Monitorització i Alertes