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

Configurar el registro de actividades para implementaciones autogestionadas

MongoDB utiliza el registro de escritura anticipada en un disco bitácora para garantizar la durabilidad de la operación de guardar.

El motor de almacenamiento WiredTiger no requiere registro en diario para garantizar un estado coherente después de un fallo. La base de datos se restaurará al último punto de control coherente durante la recuperación. Sin embargo, si MongoDB se cierra inesperadamente entre puntos de control, se requiere registrar en la bitácora para recuperar las escrituras que ocurrieron después del último punto de control.

Nota

No se puede especificar --nojournal opción o storage.journal.enabled: false para los miembros del set de réplicas que utilizan el motor de almacenamiento WiredTiger.

Con la bitácora habilitada, si mongod se detiene inesperadamente, el programa puede recuperar todo lo escrito en la bitácora. MongoDB volverá a aplicar las operaciones de escritura al reiniciar y mantendrá un estado coherente. Por defecto, la mayor medida de escrituras perdidas, es decir, las que no se realizan en el diario, son aquellas realizadas en los últimos 100 milisegundos, más el tiempo que se tarda en realizar las escrituras reales en el diario. Consulta commitIntervalMs para obtener más información sobre el valor por defecto.

Advertencia

No desactive el registrar en la bitácora en los sistemas de producción.

  • No se puede especificar la opción --nojournal o storage.journal.enabled: false para los miembros del conjunto de réplicas que utilizan el motor de almacenamiento WiredTiger.

Para deshabilitar el registro en diario para una implementación independiente, inicie mongod con la --nojournal opción de línea de comando.

Puede obtener una confirmación de confirmación con la opción "Escribir preocupación" y la j opción. Para más detalles,consulte "Escribir preocupación".

El comando serverStatus / métododb.serverStatus() devuelve wiredTiger.log, que contiene estadísticas sobre el diario.

Al reiniciarse tras un fallo, MongoDB reproduce todos los archivos de diario en el directorio de diario antes de que el servidor esté disponible. Si MongoDB debe reproducir archivos de diario, mongod registra estos eventos en la salida del registro.

No hay razón para ejecutar --repair.

Con el motor de almacenamiento WiredTiger, MongoDB usa por defecto el compresor snappy para el journal. Para especificar un algoritmo de compresión diferente o sin compresión para una instancia de mongod:

Tip

Si durante este procedimiento se produce un apagado incorrecto de mongod un, debe usar la configuración anterior del compresor para recuperarse usando los archivos de registro. Una vez recuperado, puede reintentar el procedimiento.

Utilice el siguiente procedimiento para cambiar el compresor de diario para una instancia mongod independiente:

  1. Actualice la configuración al nuevo storage.wiredTiger.engineConfig.journalCompressor valor.

    Si usa opciones de línea de comando en lugar de un archivo de configuración, tendrá que actualizar la opción de línea de comando --wiredTigerJournalCompressor durante el reinicio a continuación.

  2. Realiza un apagado limpio de la instancia mongod. Por ejemplo, conecta mongosh a la instancia y emite db.shutdownServer():

    db.getSiblingDB('admin').shutdownServer()
  3. Una vez que haya confirmado que el proceso ya no se está ejecutando, reinicie la mongod instancia:

    • Si estás usando un archivo de configuración:

      mongod -f <path/to/myconfig.conf>
    • Si usas opciones de línea de comandos en lugar de un archivo de configuración, actualiza la opción --wiredTigerJournalCompressor.

      mongod --wiredTigerJournalCompressor <differentCompressor|none> ...

Utiliza el siguiente procedimiento para cambiar el compresor de registro para un nodo de un set de réplicas:

Nota

El siguiente procedimiento implica reiniciar el nodo de réplica como autónomo sin el diario.

  1. Realiza un apagado limpio de la instancia mongod. Por ejemplo, conecta mongosh a la instancia y emite db.shutdownServer():

    db.getSiblingDB('admin').shutdownServer()
  2. Actualice el archivo de configuración para prepararse para reiniciar como independiente:

    Por ejemplo:

    storage:
    journal:
    enabled: false
    #replication:
    # replSetName: replA
    setParameter:
    disableLogicalSessionCacheRefresh: true

    Si utiliza opciones de línea de comandos en lugar de un archivo de configuración, deberá actualizar la opción de línea de comandos durante el reinicio.

  3. Reinicie la mongod instancia:

    • Si estás usando un archivo de configuración:

      mongod -f <path/to/myconfig.conf>
    • Si utilizas opciones de línea de comando en lugar de un archivo de configuración,

      • Incluye la opción --nojournal

      • Remover cualquier opción de línea de comandos de replicación (como --replSet):

      • Configura el parámetro disableLogicalSessionCacheRefresh a true en la opción --setParameter.

        mongod --nojournal --setParameter disableLogicalSessionCacheRefresh=true ...
  4. Realiza un apagado limpio de la instancia mongod:

    db.getSiblingDB('admin').shutdownServer()

    Confirma que el proceso ya no se esté ejecutando.

  5. Actualice el archivo de configuración para prepararse para reiniciar como miembro del conjunto de réplicas con el nuevo compresor de diario:

    Por ejemplo:

    storage:
    wiredTiger:
    engineConfig:
    journalCompressor: <newValue>
    replication:
    replSetName: replA

    Si utilizas opciones de línea de comandos en lugar de un archivo de configuración, tendrás que actualizar las opciones de línea de comandos durante el reinicio a continuación.

  6. Reinicie la instancia mongod como miembro del set de réplicas:

    • Si estás usando un archivo de configuración:

      mongod -f <path/to/myconfig.conf>
    • Si estás utilizando opciones de línea de comandos en lugar de un archivo de configuración:

      mongod --wiredTigerJournalCompressor <differentCompressor|none> --replSet ...

Utilice el siguiente procedimiento para cambiar el compresor de diario de un miembro de un conjunto de réplicas de fragmentos o de un conjunto de réplicas de servidor de configuración:

Nota

El siguiente procedimiento implica reiniciar el nodo de réplica como autónomo sin el diario.

  1. Realiza un apagado limpio de la instancia mongod. Por ejemplo, conecta mongosh a la instancia y emite db.shutdownServer():

    db.getSiblingDB('admin').shutdownServer()
  2. Actualice el archivo de configuración para prepararse para reiniciar como independiente:

    Por ejemplo:

    storage:
    journal:
    enabled: false
    setParameter:
    skipShardingConfigurationChecks: true
    disableLogicalSessionCacheRefresh: true
    #replication:
    # replSetName: shardA
    #sharding:
    # clusterRole: shardsvr
    net:
    port: 27218

    Si utiliza opciones de línea de comandos en lugar de un archivo de configuración, deberá actualizar la opción de línea de comandos durante el reinicio.

  3. Reinicie la mongod instancia:

    • Si estás usando un archivo de configuración:

      mongod -f <path/to/myconfig.conf>
    • Si estás utilizando opciones de línea de comandos en lugar de un archivo de configuración:

      mongod --nojournal --setParameter skipShardingConfigurationChecks=true --setParameter disableLogicalSessionCacheRefresh=true --port <samePort> ...
  4. Realiza un apagado limpio de la instancia mongod:

    db.getSiblingDB('admin').shutdownServer()

    Confirma que el proceso ya no se esté ejecutando.

  5. Actualice el archivo de configuración para prepararse para reiniciar con el nuevo compresor de diario:

    Por ejemplo:

    storage:
    wiredTiger:
    engineConfig:
    journalCompressor: <newValue>
    replication:
    replSetName: shardA
    sharding:
    clusterRole: shardsvr
    net:
    port: 27218

    Si utilizas opciones de línea de comandos en lugar de un archivo de configuración, tendrás que actualizar las opciones de línea de comandos durante el reinicio a continuación.

  6. Reinicie la instancia mongod como miembro del set de réplicas:

    • Si estás usando un archivo de configuración:

      mongod -f <path/to/myconfig.conf>
    • Si estás utilizando opciones de línea de comandos en lugar de un archivo de configuración:

      mongod --shardsvr --wiredTigerJournalCompressor <differentCompressor|none> --replSet ...

Volver

En memoria

En esta página