Compartir a través de


El archivo de registro de transacciones crece para las bases de datos con In-Memory OLTP en SQL Server 2022

Síntomas

Cuando las bases de datos tienen habilitada la característica OLTP en memoria en SQL Server 2022, observará que el archivo de registro de transacciones crece continuamente. Además, el registro de errores de SQL Server podría tener mensajes como Close thread is falling behind: 4 checkpoints outstanding.

Si reinicia la instancia de SQL Server, es posible que observe que la base de datos tarda mucho tiempo en completar el proceso de recuperación de la base de datos.

Solución del problema con sys.databases y sys.dm_db_xtp_checkpoint_stats

  • Cuando se usa la vista de catálogo sys.databases para recopilar información y solucionar este problema, la columna log_reuse_wait_desc se muestra XTP_CHECKPOINT como el motivo del truncamiento largo. Este valor indica que el registro de transacciones está esperando a que se produzca un punto de control OLTP de In-Memory (anteriormente conocido como Hekaton). Sugiere un retraso en las operaciones de puntos de control, lo que podría afectar al rendimiento o al crecimiento del archivo de registro.

  • Cuando se usa la vista de administración dinámica (DMV) de SQL Server sys.dm_db_xtp_checkpoint_stats para recopilar información y solucionar este problema, la columna outstanding_checkpoint_count muestra un valor distinto de cero durante un período de tiempo prolongado. Indica que los puntos de control no se producen de forma eficaz, lo que puede afectar al rendimiento y al crecimiento del archivo de registro.

Causa

SQL Server 2022 introdujo nuevas funcionalidades que mejoran la administración de memoria en servidores de memoria grandes para reducir las condiciones de memoria insuficiente. Un problema conocido en este cambio a veces puede provocar el comportamiento descrito en la sección Síntomas .

Solución

Para solucionar el problema, siga estos pasos:

  1. Agregue -T9810 como parámetro de inicio para la instancia de SQL Server.
  2. Reinicie la instancia.
  3. Emita un punto de control, realice una copia de seguridad de registros, observe log_reuse_wait_descy reduzca el registro si es necesario para recuperar espacio.

Más información

La marca de seguimiento 9810 deshabilita la In-Memory motor OLTP de reclamar memoria de almacenamiento local de subprocesos (TLS), revirtiendo al comportamiento de SQL Server 2019.