Los 10 artículos principales sobre el log de transacciones de SQL Server

Comprender el log y la recuperación en SQL Server

En “Descripción del log y la recuperación en SQL Server” , Paul S. Randal ha presentado una descripción general completa del log de transacciones. En cuatro secciones, explica: qué es el registro, qué es la recuperación, cómo funciona el log de transacciones y qué modelos de recuperación están disponibles. Este artículo puede usarse como punto de partida para comprender los fundamentos del log de transacciones y el proceso de log.

Iniciar sesión en SQL Server es necesario para describir qué ha cambiado en la estructura de almacenamiento de la base de datos. Cada base de datos debe tener un log de transacciones para funcionar correctamente. Los archivos de registro virtual (VFL) son partes más pequeñas del log de transacciones utilizadas para una administración interna más simple:

Artículos Logs de Transacciones

Elegir el modelo de recuperación correcto es importante para la gestión futura del log de transacciones. Existen tres modelos de recuperación diferentes, cada uno con sus propias características, ventajas y desventajas. Estos son algunos puntos clave de Paul S. Randal con respecto al log de transacciones:.

  • No cree múltiples archivos de log, ya que conducirá a una pérdida de rendimiento. se completa el log completamente o no se inicia en absoluto el proximo log.
  • Tenga en cuenta el modelo de recuperación que utiliza su base de datos y el efecto que tiene en el log de transacciones, especialmente si se puede truncar automáticamente o no cuando se produce un punto de control.
  • Tenga en cuenta el potencial para el crecimiento del log de transacciones, los factores que pueden conducir a él y cómo recuperarlo bajo control.
  • Sepa dónde buscar ayuda al solucionar un log de transacciones completo.

Geek City: explorando la estructura del log de transacciones

Explorar y leer el log de transacciones puede ser difícil debido a la forma en que se registra la información y la mayoría está en formato hexadecimal. SQL Server tiene, oficialmente indocumentado, el comando DBCC LOGINFO que puede usarse para explorar y leer el log de transacciones. En “Geek City: Explorando la estructura del log de transacciones” , Kalen Delaney señala los comandos DBCC LOGINFO y la importancia de los VLF (archivos de log virtuales). Usando el comando DBCC LOGINFO, el resultado sería una fila por archivo de log virtual y columnas específicas que incluyen: FileId, FileSize, StartOffset, FSecNo, Status, Parity y CreateLSN. Hay un ejemplo de código T-SQL que puede usarse para explorar el log de transacciones con el comando DBCC LOGINFO.

Log de transacciones lleno – Log de transacciones más grande que el archivo de datos

Como todas las bases de datos activas de SQL Server realizan constantemente algún tipo de operación, su log de transacciones siempre se hace más grande. Tim Radney señala el error más común que pueden hacer los administradores de una base de datos: tener una base de datos en modo de recuperación completa sin copias de seguridad regulares del log de transacciones. Si ese es el caso, el log de transacciones eventualmente llenará todo el espacio de almacenamiento de datos. En “Log de transacciones completo – Log de transacciones más grande que el archivo de datos – Notas del campo # 001” , Tim sugiere usar la función DBCC SHRINKFILE y cambiar la base de datos al modo de recuperación simple.

Múltiples archivos de log y por qué son malos

En “Múltiples archivos de log y por qué son malos” , Paul S. Randal presenta los datos estadísticos recopilados de 1.300 instancias de SQL Server con respecto al número de logs de transacciones por base de datos. Si hay varios logs de transacciones presentes, eso implica que el primero es grande y se queda sin espacio (más de 2 TB). Paul señala la importancia de una gestión adecuada del tamaño del archivo de log de transacciones y sugiere que el uso de Log Growths contrarreste el rendimiento de las bases de datos.

El problema con el log de transacciones

Según la experiencia, Thomas Larock afirma que la mayoría de los logs de transacciones están en mal estado. La configuración predeterminada al crear una base de datos en SQL Server es la plantilla del modelo, con la característica de crecer automáticamente en un 10 por ciento a un máximo de 2 terabytes. El número de archivos de logs virtuales (VFL) depende del tamaño inicial o extendido del registro de transacciones:

Artículos Logs de Transacciones
Crédito y derechos de autor: Thomas Larock y Kimberly Tripp

En el artículo, “El problema con el log de transacciones” , hay un código que mostrará la cantidad máxima de archivos de log virtuales (VLF) para un archivo de log que está configurado para crecer por defecto. Además, se recomienda que el archivo de log virtual sea de 512 MB como punto de partida.

Función no documentada – fn_dblog

Al igual que el comando DBCC LOGINFO, la función fn_dblog también está oficialmente indocumentada. En “Función no documentada – fn_dblog” , Muhammad Imran explica la sintaxis y da un ejemplo de código para ejecutar. Hay una secuencia de comandos útil que convierte un número de secuencia de log hexadecimal (LSN) en un número de secuencia de log entero que solo puede usarse como parámetro en la función fn_dblog.

Mitos de logs de transacciones

En “Mitos del logs de transacciones” , Vedran Kesegić habla sobre los mitos populares del log de transacciones. El truncamiento del log de transacciones no hará que un log de transacciones sea más pequeño, los registros del log de transacciones no se escriben en el almacenamiento de datos de inmediato, la reducción del log de transacciones no es una buena práctica, un log de transacciones crecerá si su base de datos está en el modelo de recuperación simple, etc..

Resultado sp_BlitzTM: ¿Log de transacciones demasiado grande?

sp_BlitzTM es un procedimiento almacenado por Brent Ozar Unlimited que determina la “salud” de SQL Server. Se almacena en la base de datos temporal de TempDB. Después de ejecutar el procedimiento almacenado, muestra si el log de transacciones es más grande que los datos en sí, lo que indica que las copias de seguridad del log de transacciones no se realizan o no se realizan con la frecuencia suficiente. En “Resultado sp_Blitz: ¿log de transacciones demasiado grande?” , Hay una guía y una recomendación sobre cómo tratar el problema.

Acerca del log de transacciones y su truncamiento en SQL Server

En “Acerca del registro de transacciones y su truncamiento en SQL Server”, Mika Wendelius explica cómo se clasifica el contenido del log de registro de transacciones en tres categorías diferentes:

  • Parte utilizada: contiene logs registrados escritas en el log de transacciones pero que se pueden eliminar.
  • Parte activa: esta es la parte del log de transacciones que se define por la transacción activa más antigua. Esta información no se puede eliminar mientras la transacción aún está activa.
  • Porción no utilizada: este es un espacio vacío.
Artículos Logs de Transacciones

En la segunda parte, Mika proporciona instrucciones paso a paso para resolver la situación cuando un log de transacciones está lleno.

Restaura tu base de datos de SQL Server usando logs de transacciones

En “Restaurar la base de datos de SQL Server utilizando logs de transacciones” , Tim Chapman ofrece un escenario para recuperar una base de datos de SQL Server utilizando un log de transacciones. Señala cuán importante es el plan de respaldo y por qué todos los respaldos deben probarse más de una vez.