Nota
El
noPaddingy opcionesusePowerOf2SizesMMAPv1 para elcollModSe eliminan los comandos.Debe actualizar a WiredTiger. MongoDB eliminó el motor de almacenamiento obsoleto MMAPv1 en la versión 4.2.
Utilice este tutorial para actualizar un conjunto de réplicas para usar WiredTiger. El procedimiento actualiza el conjunto de réplicas de forma continua para evitar tiempos de inactividad.
Considerations
Los conjuntos de réplicas pueden tener miembros con diferentes motores de almacenamiento. Por lo tanto, puede actualizar los miembros para que usen el motor de almacenamiento de WiredTiger de forma continua.
Arquitectura de miembros de PSA 3
La "majority" solicitud de lectura, disponible para WiredTiger, está habilitada de forma predeterminada. Sin embargo, en conjuntos de réplicas de tres miembros con una arquitectura de árbitro principal-secundario (PSA), puede deshabilitar la "majority" solicitud de lectura. Deshabilitar la "majority" solicitud de lectura en una arquitectura PSA de tres miembros evita la posible acumulación de presión en la caché.
El siguiente procedimiento deshabilita "majority" la preocupación de lectura para la arquitectura PSA al --enableMajorityReadConcern false incluir.
Nota
Deshabilitar la lectura de no tiene efecto sobre la disponibilidad de los flujos de "majority" cambio.
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.
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
El siguiente procedimiento actualiza el conjunto de réplicas de forma continua. Primero actualiza los miembros secundarios, luego reduce gradualmente el miembro principal y actualiza el miembro reducido.
Para actualizar un miembro de WiredTiger, el procedimiento elimina los datos de un miembro, inicia con WiredTiger y realiza mongod una sincronización inicial.
A. Actualice los miembros secundarios de WiredTiger.
Actualice los miembros secundarios uno a la vez:
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 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.
B. Reducir el voltaje primario.
Importante
Si actualiza todos los miembros del conjunto de réplicas para usar WiredTiger, asegúrese de que todos los miembros secundarios se hayan actualizado primero antes de actualizar el principal.
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 la primaria reducida.
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 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.