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.
Considerations
Falta del tiempo
Si cambia el host o el puerto de cualquier partición, también debe actualizar la configuración de la partición.
Arquitectura de miembros de PSA 3
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.
Enlace predeterminado a localhost
Los binarios de MongoDB, mongod y, se mongos enlazan a localhost de forma predeterminada.
Servidores de configuración
Los servidores de configuración deben implementarse como conjuntos de réplicas (CSRS). Por lo tanto, ya utilizan el motor de almacenamiento WiredTiger.
XFS y 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.
Restricciones únicamente de MMAPv1
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 |
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. |
Procedimiento
Para cada fragmento del conjunto de réplicas, para cambiar el motor de almacenamiento a WiredTiger:
A. Actualice los miembros secundarios de WiredTiger.
Actualice los miembros secundarios uno a la vez:
Apaga el miembro secundario.
En mongosh, apague el secundario.
use admin db.shutdownServer()
Prepare un directorio de datos para el nuevo que se ejecuta mongod con WiredTiger.
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.
Actualizar la configuración de WiredTiger.
Elimine cualquier1 opción de configuración de MMAPv de la configuración mongod de la instancia.
Inicia mongod con WiredTiger.
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 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.
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.
B. Reducir el voltaje primario.
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()
C. Actualizar el primario antiguo.
Cuando el primario se haya reducido y se haya convertido en secundario, actualice el secundario para usar WiredTiger como antes:
Apaga el miembro secundario.
mongoshEn, apague el secundario.
use admin db.shutdownServer()
Prepare un directorio de datos para el nuevo que se ejecuta mongod con WiredTiger.
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.
Actualizar la configuración de WiredTiger.
Elimine cualquier1 opción de configuración de MMAPv de la configuración mongod de la instancia.
Inicia mongod con WiredTiger.
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 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.
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.