Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
WiredTiger
/ / / / /

Cambiar un Clúster de Fragmentos Autogestionado a WiredTiger

Nota

Debes actualizar a WiredTiger. MongoDB eliminó el motor de almacenamiento MMAPv1 obsoleto en la versión 4.2.

Utilice este tutorial para actualizar un clúster particionado a usar WiredTiger.

Si cambia el host o el puerto de cualquier partición, también debe actualizar la configuración de la partición.

La "majority" nivel de consistencia de lectura, disponible para WiredTiger, está habilitado por defecto. Sin embargo, si se tiene un set de réplicas de particiones de tres nodos con una arquitectura primaria-secundaria-árbitro (PSA), se puede desactivar el "majority" nivel de consistencia de lectura para ese set de réplicas de particiones. Desactivar "majority" para una arquitectura PSA de tres nodos evita una posible acumulación de presión en la caché.

Nota

Desactivar "majority" el nivel de consistencia de lectura no afecta la disponibilidad de los change streams.

Si deshabilitas la "majority" nivel de consistencia de lectura, MongoDB evitará que los comandos de collMod que modifican un índice se reviertan. Si necesitas revertir collMod comandos, debes volver a sincronizar los nodos afectados con el nodo primario.

Deshabilitar el nivel de consistencia de lectura "majority" afecta la compatibilidad con las transacciones en clústeres sharded. Específicamente:

  • Una transacción no puede usar el nivel de consistencia de lectura "snapshot" si la transacción involucra una partición que tiene deshabilitado el nivel de consistencia de lectura "mayoría".

  • Una transacción que escribe en múltiples particiones genera un error si alguna de las operaciones de lectura o escritura de la transacción involucra una partición que ha desactivado el nivel de consistencia de lectura de "majority".

Sin embargo, no afecta las transacciones en sets de réplicas. Para transacciones en conjuntos de réplicas, puedes especificar el nivel de consistencia de lectura "majority" (o "snapshot" o "local" ) para transacciones distribuidas incluso si el nivel de consistencia de lectura "majority" está desactivado.

Para obtener más información sobre la arquitectura PSA y el nivel de consistencia de lectura "majority", consulta Conjuntos de réplicas primario-secundario-árbitro.

Los binarios de MongoDB, mongod y mongos, se enlazan a localhost por defecto.

Los servidores de configuración deben implementarse como sets de réplicas (CSRS). Como tal, los servidores de configuración ya usan el motor de almacenamiento WiredTiger.

Con el motor de almacenamiento WiredTiger, se recomienda utilizar XFS para los nodos que contienen datos en Linux. Para obtener más información, consulta Kernels y sistemas de archivos.

Una vez actualizado a WiredTiger, su implementación en WiredTiger no estará sujeto a las siguientes restricciones exclusivas de MMAPv1:

Restricciones de MMAPv1
Descripción corta

Número de espacios de nombres

Para MMAPv1, el número de espacios de nombres está limitado al tamaño del archivo de espacio de nombres dividido por 628.

Tamaño del archivo del espacio de nombres

Para MMAPv1, los archivos de namespace no pueden superar los 2047 megabytes.

Tamaño de la base de datos

El motor de almacenamiento MMAPv1 limita cada base de datos a no más de 16000 archivos de datos.

dataSize

Para MMAPv1, una sola instancia de mongod no puede gestionar un conjunto de datos que supere el espacio de direcciones de memoria virtual máxima proporcionado por el sistema operativo subyacente.

Número de colecciones en una base de datos

Para el motor de almacenamiento MMAPv1, el número máximo de colecciones en una base de datos depende del tamaño del archivo de namespace y del número de índices de colecciones en la base de datos.

Para cada set de réplicas partición, para cambiar el motor de almacenamiento a WiredTiger:

Actualiza los miembros secundarios uno a la vez:

1

En mongosh, cerrar el secundario.

use admin
db.shutdownServer()
2

Prepare un directorio de datos para la nueva instancia de mongod que funcionará con el motor de almacenamiento WiredTiger. mongod debe tener permisos de lectura y escritura para este directorio. Puedes borrar el contenido del directorio de datos actual del miembro secundario detenido o crear un directorio completamente nuevo.

mongod con WiredTiger no se iniciará con archivos de datos creados con un motor de almacenamiento diferente.

3

Elimine cualquier opción de configuración de MMAPv1 de la configuración de la instancia mongod.

4

Inicia mongod, especificando wiredTiger como el --storageEngine y el directorio de datos preparado para WiredTiger como el --dbpath.

Especifica opciones adicionales según corresponda, como --bind_ip.

Advertencia

Antes de enlazar a un host que no sea localhost (por ejemplo, Públicamente accesible) dirección IP, asegúrese de que ha protegido su clúster de accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulta la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considera activar la autenticación y fortalecer la infraestructura de red.

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)>

Importante

Si está ejecutando una arquitectura PSA de tres nodos, incluya --enableMajorityReadConcern false para desactivar el nivel de consistencia de lectura majority. Consulte Arquitectura de nodo PSA 3.

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)> --enableMajorityReadConcern false

Dado que no existen datos en el --dbpath, el mongod realizará una sincronización inicial. La duración del proceso de sincronización inicial depende del tamaño de la base de datos y de la conexión de red entre los nodos del set de réplicas.

También puedes especificar las opciones en un archivo de configuración. Para especificar el motor de almacenamiento, utiliza el ajuste storage.engine.

Repita los pasos para los miembros secundarios restantes, actualizándolos uno a la vez.

Una vez que todos los miembros secundarios se hayan actualizado a WiredTiger, conecta mongosh al primario y usa rs.stepDown() para hacer que el primario ceda su puesto y forzar la elección de un nuevo primario.

rs.stepDown()

Cuando el principal haya renunciado y se haya convertido en secundario, actualice el secundario para usar WiredTiger como antes:

1

En mongosh, cerrar el secundario.

use admin
db.shutdownServer()
2

Prepare un directorio de datos para la nueva instancia de mongod que funcionará con el motor de almacenamiento WiredTiger. mongod debe tener permisos de lectura y escritura para este directorio. Puedes borrar el contenido del directorio de datos actual del miembro secundario detenido o crear un directorio completamente nuevo.

mongod con WiredTiger no se iniciará con archivos de datos creados con un motor de almacenamiento diferente.

3

Elimine cualquier opción de configuración de MMAPv1 de la configuración de la instancia mongod.

4

Inicia mongod, especificando wiredTiger como el --storageEngine y el directorio de datos preparado para WiredTiger como el --dbpath.

Especifica opciones adicionales según corresponda, como --bind_ip.

Advertencia

Antes de enlazar a un host que no sea localhost (por ejemplo, Públicamente accesible) dirección IP, asegúrese de que ha protegido su clúster de accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulta la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considera activar la autenticación y fortalecer la infraestructura de red.

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)>

Importante

Si está ejecutando una arquitectura PSA de tres nodos, incluya --enableMajorityReadConcern false para desactivar el nivel de consistencia de lectura majority. Consulte Arquitectura de nodo PSA 3.

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> --replSet <replSetName> --bind_ip localhost,<hostname(s)|ip address(es)> --enableMajorityReadConcern false

Dado que no existen datos en el --dbpath, el mongod realizará una sincronización inicial. La duración del proceso de sincronización inicial depende del tamaño de la base de datos y de la conexión de red entre los nodos del set de réplicas.

También puedes especificar las opciones en un archivo de configuración. Para especificar el motor de almacenamiento, utiliza el ajuste storage.engine.

Repite el procedimiento para las demás particiones.

Volver

Cambiar un set de réplicas autogestionado a WiredTiger