Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Realice el mantenimiento de los miembros del set de réplicas autogestionados

Los sets de réplicas permiten que una implementación de MongoDB permanezca disponible durante la mayor parte de una ventana de mantenimiento.

Este documento describe el procedimiento básico para realizar el mantenimiento de cada uno de los nodos de un set de réplicas. Además, esta secuencia particular se esfuerza por minimizar el tiempo que el principal está inactivo y controlar el impacto en toda la implementación.

Utilice estos pasos como base para operaciones de conjuntos de réplicas comunes, particularmente para procedimientos como la actualización a la última versión de MongoDB.

Para cada miembro de un conjunto de réplicas, comenzando con un miembro secundario, realice la siguiente secuencia de eventos, terminando con el principal:

1

En mongosh, apague la mongod instancia:

db.shutdownServer()
2

En el indicador del shell del sistema operativo, reinicie mongod como una instancia autónomo.

Si está utilizando un archivo de configuración, realice las siguientes actualizaciones de configuración:

Por ejemplo, si se realiza mantenimiento en un miembro del conjunto de réplicas del servidor de configuración/fragmento para mantenimiento, el archivo de configuración actualizado incluirá contenido como el del siguiente ejemplo:

net:
bindIp: localhost,<hostname(s)|ip address(es)>
port: 27218
# port: 27018
#replication:
# replSetName: shardA
#sharding:
# clusterRole: shardsvr
setParameter:
skipShardingConfigurationChecks: true
disableLogicalSessionCacheRefresh: true

Si utiliza opciones de línea de comandos, realice las siguientes actualizaciones de configuración para reiniciar:

Por ejemplo, para reiniciar un miembro del conjunto de réplicas que no es parte de un clúster fragmentado:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter disableLogicalSessionCacheRefresh=true

Por ejemplo, para reiniciar un miembro del conjunto de réplicas del servidor de configuración/fragmento para mantenimiento:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter skipShardingConfigurationChecks=true --setParameter disableLogicalSessionCacheRefresh=true

Advertencia

Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.

Siempre inicia mongod con el mismo usuario, incluso al reiniciar un miembro de un set de réplicas como una instancia autónoma.

3

Mientras el nodo es independiente, utilice mongosh para realizar labores de mantenimiento:

mongo --port 27218

Importante

Mientras el nodo es autónomo, no se replican guardados en dicho nodo ni los guardados realizados en dicho nodo se replican en los demás nodos del set de réplicas.

Asegúrese de que cualquier escritura en este autónomo no entre en conflicto con las escrituras oplog que se aplicarán al nodo cuando vuelva a unirse al set de réplicas.

4

Después de realizar todas las tareas de mantenimiento, utilice el siguiente procedimiento para reiniciar el mongod como nodo del conjunto de réplicas en su puerto habitual.

mongoshDesde, apague el servidor independiente después de completar el mantenimiento:

use admin
db.shutdownServer()

Reinicie la instancia mongod como miembro de set de réplicas con su configuración original; es decir, deshaga los cambios realizados durante el inicio como autónomo.

Tip

Asegúrese de eliminar el parámetro disableLogicalSessionCacheRefresh.

Para los nodos del partición o del servidor de configuración, asegúrese de remover el parámetro skipShardingConfigurationChecks.

Cuando haya comenzado, conecte mongosh a la instancia reiniciada.

El secundario tarda en alcanzar al primario. Desde mongosh, usa el siguiente comando para verificar que el nodo se ha puesto al día del estado RECOVERING al estado SECONDARY.

rs.status()
5
  1. Para realizar mantenimiento en el primario después de completar tareas de mantenimiento en todos los secundarios, conecta mongosh al primario y usa rs.stepDown() para cambiar el rol del primario y permitir que uno de los secundarios sea elegido como el nuevo primario. Especifica un periodo de espera de 300 segundos para evitar que el nodo sea elegido primario de nuevo durante cinco minutos:

    rs.stepDown(300)

    Después de que el primario se retire, el set de réplicas elegirá un nuevo primario.

  2. Reinicie mongod como una instancia autónoma, realizando las siguientes actualizaciones de configuración.

Si está utilizando un archivo de configuración, realice las siguientes actualizaciones de configuración:

Por ejemplo, si se realiza mantenimiento en un miembro del conjunto de réplicas del servidor de configuración/fragmento para mantenimiento, el archivo de configuración actualizado incluirá contenido como el del siguiente ejemplo:

net:
bindIp: localhost,<hostname(s)|ip address(es)>
port: 27218
# port: 27018
#replication:
# replSetName: shardA
#sharding:
# clusterRole: shardsvr
setParameter:
skipShardingConfigurationChecks: true
disableLogicalSessionCacheRefresh: true

Advertencia

Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.

Si usas opciones de línea de comando, realiza las siguientes actualizaciones de configuración:

Por ejemplo, para reiniciar un miembro del conjunto de réplicas que no es parte de un clúster fragmentado:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter disableLogicalSessionCacheRefresh=true

Por ejemplo, para reiniciar un miembro del conjunto de réplicas del servidor de configuración/fragmento para mantenimiento:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter skipShardingConfigurationChecks=true --setParameter disableLogicalSessionCacheRefresh=true

Advertencia

Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.

  1. Realiza tareas de mantenimiento en el ahora autónomo.

    Importante

    Mientras el nodo es autónomo, no se replican guardados en dicho nodo ni los guardados realizados en dicho nodo se replican en los demás nodos del set de réplicas.

    Asegúrese de que cualquier escritura en este autónomo no entre en conflicto con las escrituras oplog que se aplicarán al nodo cuando vuelva a unirse al set de réplicas.

  2. Después de realizar todas las tareas de mantenimiento, reinicie la mongod instancia como un miembro del conjunto de réplicas con su configuración original; es decir, deshaga los cambios de configuración realizados al iniciar como independiente.

    Tip

    Asegúrese de eliminar el parámetro disableLogicalSessionCacheRefresh.

    Para los nodos del partición o del servidor de configuración, asegúrese de remover el parámetro skipShardingConfigurationChecks.

Volver

Cambiar el tamaño del Oplog

En esta página