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
/ /
WiredTiger
/ / / / /

Cambiar un clúster fragmentado autoadministrado a WiredTiger

Nota

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

Utilice este tutorial para actualizar un clúster particionado a usar Tigre con cable.

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 deshabilita la "majority" lectura de, MongoDB impide que collMod los comandos que modifican un índice se reviertan. Si necesita collMod revivir los comandos, debe resincronizar los nodos afectados con el nodo principal.

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 a las transacciones en conjuntos de réplicas. En este tipo de transacciones, puede especificar la preocupación de lectura "majority" (o "snapshot" "local"o) para transacciones distribuidas, incluso si la preocupación "majority" de lectura está deshabilitada.

Para obtener más información sobre la arquitectura de PSA y leer la inquietud,consulte Conjuntos "majority"de réplicas de árbitro primario-secundario.

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 espacio de nombres no pueden tener más de 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 no puede administrar un conjunto de datos que exceda el espacio máximo de direcciones de memoria virtual proporcionado por el sistema operativo mongod 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:

Actualice los miembros secundarios uno a la vez:

1

mongoshEn, apague 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 --dbpath en,mongod realizará una sincronización inicial. La duración de esta sincronización inicial depende del tamaño de la base de datos y de la conexión de red entre los miembros del conjunto 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, conecte al mongosh rs.stepDown() primario y use para reducir el primario 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

mongoshEn, apague 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 --dbpath en,mongod realizará una sincronización inicial. La duración de esta sincronización inicial depende del tamaño de la base de datos y de la conexión de red entre los miembros del conjunto 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 el procedimiento para los demás fragmentos.

Volver

Cambiar un set de réplicas autogestionado a WiredTiger