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 fragmentado para usarlo 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.

El La preocupación de lectura "majority", disponible para WiredTiger, está habilitada de forma predeterminada. Sin embargo, si tiene un conjunto de réplicas de fragmentos de tres miembros con una arquitectura de árbitro primario-secundario (PSA), puede deshabilitar la preocupación de lectura"majority"para ese conjunto de réplicas de fragmentos. Deshabilitar"majority"para una arquitectura PSA de tres miembros evita la posible acumulación de presión de caché.

Nota

Deshabilitar la lectura de no tiene efecto sobre la disponibilidad de los flujos de "majority" cambio.

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 la preocupación de lectura "majority" afecta la compatibilidad con transacciones en clústeres fragmentados. En concreto:

  • Una transacción no puede utilizar la preocupación de lectura "snapshot" si la transacción involucra un fragmento que tiene deshabilitada la preocupación 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, se mongos enlazan a localhost de forma predeterminada.

Los servidores de configuración deben implementarse como conjuntos de réplicas (CSRS). Por lo tanto, ya utilizan el motor de almacenamiento WiredTiger.

Con el motor de almacenamiento WiredTiger, se recomienda usar XFS para nodos que contienen datos en Linux. Para más información, consulte Kernel y sistemas de archivos.

Una vez actualizado a WiredTiger, su implementación de WiredTiger no estará sujeta a las siguientes1restricciones exclusivas de MMAPv:

Restricciones de MMAPv1
Breve descripción

Número de espacios de nombres

Para MMAPv1, la cantidad de espacios de nombres está limitada al tamaño del archivo de espacio de nombres dividido por 628.

Tamaño del archivo de 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.

Tamaño de los datos

Para MMAPv,1 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, la cantidad máxima de colecciones en una base de datos es una función del tamaño del archivo de espacio de nombres y la cantidad de índices de colecciones en la base de datos.

Para cada fragmento del conjunto de réplicas, 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 que se ejecutará con el motor de almacenamiento mongod WiredTiger. mongod debe tener permisos de lectura y escritura para este directorio. Puede eliminar 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 cualquier1 opción de configuración de MMAPv de la configuración mongod de la instancia.

4

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

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

Advertencia

Antes de vincular una dirección IP que no sea local (por ejemplo, de acceso público), asegúrese de proteger su clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulte la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considere habilitar la autenticación y reforzar la infraestructura de red.

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

Importante

Si utiliza una arquitectura PSA de tres miembros, incluya --enableMajorityReadConcern false para deshabilitar la lectura de majority problemas.Consulte 3Arquitectura PSA de miembros.

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 puede especificar las opciones en un archivo de configuración. Para especificar el motor de almacenamiento, utilice la storage.engine configuración.

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 primario se haya reducido 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 que se ejecutará con el motor de almacenamiento mongod WiredTiger. mongod debe tener permisos de lectura y escritura para este directorio. Puede eliminar 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 cualquier1 opción de configuración de MMAPv de la configuración mongod de la instancia.

4

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

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

Advertencia

Antes de vincular una dirección IP que no sea local (por ejemplo, de acceso público), asegúrese de proteger su clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulte la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considere habilitar la autenticación y reforzar la infraestructura de red.

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

Importante

Si utiliza una arquitectura PSA de tres miembros, incluya --enableMajorityReadConcern false para deshabilitar la lectura de majority problemas.Consulte 3Arquitectura PSA de miembros.

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 puede especificar las opciones en un archivo de configuración. Para especificar el motor de almacenamiento, utilice la storage.engine configuración.

Repita el procedimiento para los demás fragmentos.

Volver

Cambiar un conjunto de réplicas autoadministradas a WiredTiger