Utiliza un autónomo mongodInstancia para pruebas y desarrollo. Una instancia independiente no es recomendable para un entorno de producción, ya que puede representar un único punto de fallo. Un conjunto de réplicas 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 convierte un servidor de desarrollo en un conjunto de réplicas para su uso en producción, consulte primero la lista de verificación de seguridad. Haga esto antes de exponer su clúster a Internet.
Puede migrar de un servidor independiente a un servidor independiente. MongoDB Atlas cluster. MongoDB Atlas es el servicio totalmente gestionado para implementaciones de MongoDB en la nube. Para obtener más información, consulta Migrar o importar datos en la documentación de MongoDB Atlas.
Acerca de esta tarea
Arquitectura de servidor
El tutorial utiliza los siguientes servidores:
Nombre del host | Puerto | Descripción |
|---|---|---|
|
| Un MongoDB Server autónomo en ejecución con datos. |
|
| Un nuevo MongoDB Server para unirse al Set de réplicas. |
|
| Un nuevo MongoDB Server para unirse al Set de réplicas. |
Antes de comenzar
Tipo de clúster
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 proporciona redundancia y disponibilidad al distribuir los datos entre fragmentos, que generalmente se alojan en varios servidores para permitir el escalado horizontal.
Autorización
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:
Procedimiento
Apaga la instancia autónoma.
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 replica set" } )
Cuando ejecutas el comando shutdown, el servidor responde con un mensaje similar al siguiente ejemplo:
MongoNetworkError: connection <connection number> to <host>:<port> closed
Configurar los miembros del Set de réplicas
Actualiza el archivo de configuración en cada servidor para establecer la replSetName configuración.
replication: replSetName: "rs0"
Configurar la autenticación del Nodo
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 | ||
Establece la ruta al archivo | ||
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 | ||
Establece el modo utilizado para autenticar a los miembros del clúster. Para utilizar la autenticación X.509, configura esta opción en |
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 |
Por ejemplo:
replication: replSetName: "rs0" net: bindIp: localhost
Inicie MongoDB
Inicia mongod para cada Nodo.
Inicializa el set de réplicas.
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().
Añade nodos al set de réplicas.
El nuevo set de réplicas tiene un único nodo primario. 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")
Verifica el estado de la replicación.
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()
Actualice la cadena de conexión de su aplicación.
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:27017mongodb1.example.net:27017mongodb2.example.net:27017
mongodb://mongodb0.example.net:27017,mongodb1.example.net:27017,mongodb2.example.net:27017
Luego, reinicia tus aplicaciones.