Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial
ConfiguraciónConjunto RéplicaLinuxMongoDBBase de datosConfiguraciónDesarrolloAlta DisponibilidadClústerSincronización
Traducción actualizada 2 Hace unas semanas
Crear un conjunto de réplicas de MongoDB es una parte esencial para garantizar alta disponibilidad y redundancia de datos en sus aplicaciones que dependen de MongoDB. En esta guía, explicaremos en detalle cómo configurar un conjunto de réplicas de MongoDB en un sistema basado en Linux. Esta explicación abarcará múltiples temas, incluyendo comprender qué es un conjunto de réplicas, requisitos previos, instalación, configuración, pruebas y más. Esta guía detallada cubre todo lo que necesita saber para configurar un conjunto de réplicas desde cero en inglés simple.
Antes de profundizar en la configuración técnica, es importante entender qué es un conjunto de réplicas de MongoDB. Un conjunto de réplicas en MongoDB es un grupo de nodos de base de datos MongoDB que mantienen el mismo conjunto de datos, proporcionando así redundancia de datos y alta disponibilidad. Un conjunto de réplicas típico consta de al menos tres instancias o nodos de MongoDB:
Los conjuntos de réplicas permiten una conmutación por error sin problemas, lo que significa que si el nodo primario se cae, uno de los secundarios puede ser promovido a primario, permitiendo que su aplicación continúe funcionando con mínima interrupción.
Para configurar un conjunto de réplicas de MongoDB, necesita los siguientes requisitos previos:
El primer paso es instalar MongoDB en todas sus máquinas Linux. Dependiendo de su distribución de Linux, los comandos de instalación pueden variar.
Para Ubuntu (usando apt):
sudo apt update
sudo apt install -y mongodb
Para CentOS (usando yum):
sudo yum install -y mongodb-org
Asegúrese de que MongoDB esté en funcionamiento en cada máquina:
sudo systemctl start mongod
sudo systemctl enable mongod
Una vez que MongoDB esté instalado y funcionando en cada nodo, debe configurar cada instancia para que sea parte de un conjunto de réplicas. Edite el archivo de configuración de MongoDB, que generalmente se encuentra en /etc/mongod.conf
, con su editor de texto favorito.
Localice la línea que comienza con replication:
y establezca replSetName
. Asegúrese de que el nombre sea el mismo en todos los nodos de su conjunto de réplicas. Agregue o modifique la sección de esta manera:
replication:
replSetName: "myReplicaSet"
Guarde y cierre el archivo. Luego reinicie el servicio de MongoDB en todos los nodos para aplicar los cambios:
sudo systemctl restart mongod
Ahora que las instancias de MongoDB están configuradas, vaya al servidor que desea designar como primario.
Ejecute la shell de MongoDB:
mongo
En la shell de MongoDB, use el siguiente comando para inicializar el conjunto de réplicas:
rs.initiate()
El comando anterior inicia el conjunto de réplicas en su servidor primario.
Una vez que se ha inicializado el conjunto de réplicas, puede agregar otros nodos (secundarios y opcionalmente un árbitro) al conjunto de réplicas utilizando el comando rs.add()
.
Por ejemplo, para agregar un nodo secundario:
rs.add("hostname2:27017")
Reemplace hostname2:27017
con la dirección y puerto reales del nodo secundario.
Repita el proceso para nodos secundarios adicionales, si están disponibles:
rs.add("hostname3:27017")
Si desea agregar un nodo árbitro:
rs.addArb("hostname4:27017")
Compruebe el estado del conjunto de réplicas utilizando el siguiente comando:
rs.status()
Este comando proporcionará un informe detallado que muestra el estado de cada nodo en el conjunto de réplicas. Verifique que cada nodo esté en el estado esperado (primario, secundario, árbitro).
Una vez que el conjunto de réplicas está configurado, es importante probar su funcionalidad para asegurarse de que se comporte correctamente en caso de fallos. Aquí hay algunas pruebas que puede realizar:
Detenga el servicio de MongoDB en el nodo primario actual:
sudo systemctl stop mongod
Compruebe el estado del conjunto de réplicas en cualquier nodo secundario:
mongo
Luego ejecute en la shell de MongoDB:
rs.status()
Ahora uno de los nodos secundarios debería convertirse en el nuevo nodo primario. Reinicie MongoDB en el nodo primario original y verifique que se haya reincorporado al conjunto de réplicas como nodo secundario.
Cuando se selecciona el nuevo nodo primario, inserte datos en él y verifique si estos datos se replican a los nodos secundarios.
use testDB
db.testCollection.insert({"name": "Prueba de replicación"})
Luego, verifique la presencia de datos en uno de los nodos secundarios ejecutando lo siguiente:
rs.slaveOk()
db.testCollection.find()
En escenarios donde tenga un árbitro, puede probar su funcionalidad deteniendo intencionalmente un nodo y verificando que el árbitro ayude a elegir el nuevo primario.
Detenga y reinicie uno de los servicios de MongoDB secundarios:
rs.status()
Asegúrese de que su árbitro esté presente y desempeñe su papel correctamente cuando sea necesario un voto.
Los problemas a menudo surgen debido a una configuración de red incorrecta; asegúrese de que todos los nodos puedan comunicarse entre sí y que todos los firewalls estén configurados para permitir la comunicación en el puerto 27017 (o el puerto que esté configurado para usar MongoDB).
Si la autenticación está habilitada, asegúrese de crear los roles de usuario y credenciales adecuados que permitan que los nodos del conjunto de réplicas se autentiquen entre sí.
Comprenda cómo funcionan los niveles de preocupación de lectura y escritura de MongoDB para que pueda configurarlos para satisfacer las necesidades de su aplicación, especialmente en escenarios de conjunto de réplicas.
Configurar conjuntos de réplicas de MongoDB en sistemas Linux es crucial para aplicaciones que requieren alta disponibilidad y confiabilidad. Siguiendo esta guía integral, debería poder configurar conjuntos de réplicas de manera efectiva, comprendiendo la importancia de cada paso. Ejecutar un conjunto de réplicas asegura que sus datos se repliquen en múltiples nodos, haciendo que su sistema de base de datos sea más tolerante a fallos y bien equipado para manejar las demandas de aplicaciones del mundo real.
Recuerde, siempre monitoree la salud y el rendimiento de su conjunto de réplicas de MongoDB y ajuste la configuración de acuerdo con los requisitos de la aplicación que cambian. Con la configuración y el mantenimiento adecuados, los conjuntos de réplicas de MongoDB pueden proporcionar una solución de base de datos robusta para aplicaciones críticas.
Si encuentras algo incorrecto en el contenido del artículo, puedes