El archivo de registro de transacciones crece para las bases de datos con OLTP en memoria en SQL Server 2022
Síntomas
Cuando las bases de datos tienen habilitada la característica OLTP en memoria en SQL Server 2022, verá 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 muestraXTP_CHECKPOINT
como el motivo del truncamiento largo. Este valor indica que el registro de transacciones está esperando que se produzca un punto de comprobación OLTP en memoria (anteriormente conocido como Hekaton). Sugiere un retraso en las operaciones de punto de comprobación, 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 podría 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 fuera de memoria. Un problema conocido en este cambio a veces puede provocar el comportamiento descrito en la sección Síntomas .
Solución
Para resolver el problema, siga estos pasos:
- Agregue -T9810 como parámetro de inicio para la instancia de SQL Server.
- Reinicie la instancia.
- Emita un punto de control, realice una copia de seguridad del registro, observe
log_reuse_wait_desc
y reduzca el registro si es necesario para recuperar espacio.
Nota
Este problema se ha corregido en la actualización acumulativa 7 para SQL Server 2022.
Más información
La marca de seguimiento 9810 deshabilita el motor OLTP en memoria para reclamar memoria de almacenamiento local de subprocesos (TLS), revirtiendo al comportamiento de SQL Server 2019.