Docs Menu
Docs Home
/ /

Convierte un mongod autónomo autogestionado en un set de réplicas

A autónomo mongodLa instancia es útil para pruebas y desarrollo. Una instancia independiente no es una buena opción para una implementación de producción, ya que puede ser un punto único de fallo. Un conjunto de réplicas, también conocido como clúster, proporciona redundancia y disponibilidad. Utilice siempre un conjunto de réplicas en producción.

Si tiene un servidor autónomo con datos que desea usar en producción, convierta primero el servidor autónomo a un set de réplicas.

Importante

Si se convierte un servidor de desarrollo en un set de réplicas para uso en producción, se debe consultar la lista de verificación de seguridad antes de exponer el clúster a internet.

Puede migrar fácilmente de un servidor independiente a uno ClústerMongoDB Atlas. MongoDB Atlas es el servicio totalmente administrado para implementaciones de MongoDB en la nube. Para obtener más información, consulte Migrar o importar datos en la documentación de MongoDB Atlas.

Este tutorial utiliza los siguientes servidores:

Nombre del host
Puerto
Descripción

mongodb0.example.net

27017

Un MongoDB Server autónomo en ejecución con datos.

mongodb1.example.net

27017

Un nuevo MongoDB Server para unirse al Set de réplicas.

mongodb2.example.net

27017

Un nuevo MongoDB Server para unirse al Set de réplicas.

Antes de convertir la instancia autónoma, se debe considerar si un set de réplicas o un clúster particionado es más apropiado para la carga de trabajo.

Un clúster fragmentado es un tipo especial de clúster. Un clúster fragmentado proporciona redundancia y disponibilidad; también distribuye datos a través de fragmentos. Los fragmentos suelen estar alojados en varios servidores y permiten el escalado horizontal.

Para usar la autorización con un Set de réplicas, también debes configurar los miembros del Set de réplicas para que usen certificados X.509 o archivos de claves para realizar la autenticación interna.

Para obtener más información, consulte:

1

Utiliza mongosh para conectarte a su instancia mongod existente:

mongosh "mongodb://mongodb0.example.net:27017"

Cambia a la base de datos admin y ejecuta shutdown.

use admin
db.adminCommand(
{
shutdown: 1,
comment: "Convert to cluster"
}
)

Cuando ejecuta el comando shutdown, el servidor responde con un mensaje similar al siguiente ejemplo:

MongoNetworkError: connection <connection number> to <host>:<port> closed

2

Actualiza el archivo de configuración en cada servidor y establece la configuración replSetName.

replication:
replSetName: "rs0"
3

Configura la autenticación de Nodo para cada servidor del Set de réplicas.

Configura el Set de réplicas para que utiliza certificados X.509 para la autenticación de Nodos internos.

Configuración
Opción
Descripción

Establece la moda TLS que se utilizará en la autenticación. Para configurar el servidor para que requiera la autenticación con el certificado X.509, establece esta opción en requireTLS.

Establece la ruta al archivo .pem que contiene el certificado TLS para las conexiones de los clientes.

Establece la ruta al archivo que contiene la cadena de certificados raíz para la Autoridad de Certificación (CA).

Establece la ruta al archivo .pem que contiene el certificado TLS para las conexiones de los Nodos del clúster.

Establece el modo utilizado para autenticar a los miembros del clúster. Para utilizar la autenticación X.509, configura esta opción en x509.

Por ejemplo:

replication:
replSetName: "rs0"
security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mongodb/client.pem
CAFile: /etc/mongodb/ca.pem
clusterFile: /etc/mongodb/member.pem

Configura el Set de réplicas para que utilice archivos de claves para la autenticación interna de los Nodos. Para autenticarse, cada nodo debe tener una copia del mismo archivo de claves.

Configuración
Opción
Descripción

Establece la ruta al archivo de clave del Set de réplicas.

Por ejemplo:

replication:
replSetName: "rs0"
security:
keyFile: /etc/mongodb/keyfile

Configura un set de réplicas sin autorización.

Advertencia

Debes utilizar esta configuración solo para Sets de réplicas internos que no sean accesibles a través de la red.

Configuración
Opción
Descripción

Configurar los nombres de host o las direcciones IP en las que MongoDB escucha para las conexiones de los clientes. Para bloquear el acceso de red al servidor, establece esta opción en localhost.

Por ejemplo:

replication:
replSetName: "rs0"
net:
bindIp: localhost
4

Inicia mongod para cada Nodo.

5

Para inicializar el set de réplicas, se debe usar mongosh para realizar la reconexión a la instancia del servidor.

mongosh "mongodb://mongodb0.example.net:27017"

Luego, ejecuta el método rs.initiate():

rs.initiate()

Solo tiene que iniciar el set de réplicas una vez.

Para ver la configuración del Set de réplicas, utilice rs.conf().

Para comprobar el estado del set de réplicas, usa rs.status().

6

El nuevo set de réplicas tiene un único nodo primario. El siguiente paso es añadir nuevos nodos al set de réplicas. Lee la documentación sobre los clústeres antes de añadir nodos adicionales:

Para añadir nodos, ejecuta el rs.add() método:

rs.add("mongodb1.example.net:27017")
rs.add("mongodb2.example.net:27017")
7

Para verificar que el Set de réplicas esté configurado correctamente, ejecuta el método rs.status() y comprueba que los nuevos miembros estén listados en el campo members:

rs.status()
8

Después de convertir el servidor autónomo en un Set de réplicas, actualiza la cadena de conexión utilizada por sus aplicaciones a la cadena de conexión para el Set de réplicas:

  • mongodb0.example.net:27017

  • mongodb1.example.net:27017

  • mongodb2.example.net:27017

mongodb://mongodb0.example.net:27017,mongodb1.example.net:27017,mongodb2.example.net:27017

Luego, reinicia tus aplicaciones.

Volver

Añadir un árbitro a un set de réplicas