¿Qué es un registro de transacciones?

En esta guía los logs de transacciones son una parte integral de los archivos de cada base de datos de SQL Server. Contiene registros de logs producidos durante el proceso de registro en una base de datos de SQL Server. El log de transacciones es el componente más importante de una base de datos de SQL Server cuando se trata de la recuperación de desastres, sin embargo, no debe estar dañado. Después de cada modificación de la base de datos: ocurrencia de una transacción, se escribe un registro en el log de transacciones. Todos los cambios se escriben secuencialmente.

En esta guía revisaremos que almacenan los logs de transacciones de SQL Server.

En nuestra guía enfatizaremos que los logs de transacciones almacenan todas las transacciones realizadas en una base de datos de SQL Server, excepto algunas que se registran mínimamente como BULK IMPORT o SELECT INTO. Internamente, se divide en las partes más pequeñas llamadas Archivos de registro virtual (VLF). Cuando un VLF se convierta en un log completo, continuara escribiendo en el siguiente registro disponible en el log de transacciones. El archivo de log de transacciones se puede representar como un archivo circular. Cuando el log llega al final del archivo, comienza de nuevo desde el principio, pero solo si se cumplen todos los requisitos y las partes inactivas se han truncado. El proceso de truncamiento es necesario para marcar todas las partes inactivas para que puedan ser utilizadas de nuevo y sobrescritas.

Ya no se necesita un registro en el log de transacciones si se cumplen todas las siguientes condiciones:

– La transacción de la que es parte se ha comiteado.
– Las páginas de la base de datos que cambió se han escrito todas en el disco mediante un punto de control.
– El registro de log no es necesario para una copia de seguridad (completa, diferencial o registro)
– El registro de log no es necesario para ninguna función que lea el log (como la duplicación o replicación de bases de datos).

El log lógico es una parte activa del registro de transacciones. Un Número de secuencia de log (LSN) identifica cada transacción en el log de transacciones. El MinLSN es el punto de partida de la transacción activa más antigua en el log de transacciones en línea.

¿Puede funcionar la base de datos de SQL Server sin un log de transacciones?

No, eso no es posible debido al diseño de SQL Server y el cumplimiento de ACID. ACID significa atomicidad, consistencia, aislamiento y durabilidad. Todas las transacciones deben cumplir con estas características:

  • Una transacción atómica se completa completamente o no se inicia en absoluto.
  • Una transacción impone consistencia en el estado del sistema al garantizar que al final de cualquier transacción el sistema se encuentre en un estado válido.
  • Cuando una transacción se ejecuta de forma aislada , parece ser la única acción que el sistema está realizando a la vez.
  • Una transacción es duradera, lo que significa que una vez que se ha completado con éxito, todos los cambios que realizó en el sistema son permanentes.

¿Puede una base de datos de SQL Server tener más de un log de transacciones?

Sí, eso es posible, pero solo se recomienda en situaciones específicas. Agregar múltiples archivos de logs de transacciones no mejorará el rendimiento de la base de datos de SQL Server de ninguna manera. La escritura solo puede ocurrir en un archivo a la vez, por lo que no es posible realizar operaciones paralelas de E / S.

Se recomienda tener varios archivos de logs de transacciones solo si el primero está lleno o si la unidad de disco se está quedando sin espacio. De cualquier manera, estos problemas deben abordarse antes y manejarse mediante la creación de copias de seguridad del log de transacciones y la supervisión del espacio disponible en la unidad de disco.

Guía Registros Transacciones SQL Server

¿Por qué crece el registro de transacciones de SQL Server?

A cada transacción le sigue iniciar sesión en el log de transacciones en línea. Durante el trabajo de SQL Server, el log de transacciones crece si se realizan cambios en una base de datos, por lo tanto, mantener el registro de transacciones es crucial para la correcta operación de SQL Server.

Hay tres modelos de recuperación disponibles en SQL Server, dependiendo de cuál se use. El crecimiento del log de transacciones se manifiesta de manera diferente:

  • Modelo de recuperación simple: las copias de seguridad del log de transacciones no son compatibles. El proceso de truncamiento es automatizado y el espacio se reclama para su reutilización. Existe un riesgo de pérdida de datos porque se exponen los cambios desde la copia de seguridad de la base de datos más reciente. En la recuperación simple hay pocas posibilidades de que el log de transacciones crezca, solo en situaciones específicas cuando hay una transacción de larga duración o una transacción que genera muchos cambios.
  • Modelo de recuperación de log masivo: las copias de seguridad del log de transacciones son compatibles y necesarias de forma regular. No hay un proceso automatizado de truncamiento del registro de transacciones, las copias de seguridad del registro de transacciones deben realizarse con regularidad para marcar el espacio no utilizado disponible para sobrescribir. El modelo de recuperación de registro masivo reduce el uso de espacio en el registro de transacciones al usar un registro mínimo para la mayoría de las operaciones masivas.
  • Modelo de recuperación completa: las copias de seguridad del log de transacciones son compatibles y necesarias de forma regular. No hay riesgo de pérdida de datos en las circunstancias normales. No hay un proceso automatizado de truncamiento del log de transacciones, las copias de seguridad del log de transacciones deben realizarse con regularidad para marcar el espacio no utilizado disponible para sobrescribir. En la recuperación completa hay una mayor posibilidad de que el log de transacciones crezca porque todas las transacciones se registran.

¿Necesito copias de seguridad del log de transacciones de SQL Server?

Sí, ese es uno de los recursos más importantes cuando se trata de la recuperación de desastres. No son necesarios (y están disponibles) solo si se utiliza el modelo de recuperación simple, pero existe una exposición a la pérdida de datos. La mayoría de los administradores de bases de datos utiliza un intervalo de 15 minutos o incluso menos para las bases de datos de SQL Server de alto tráfico. Las copias de seguridad del log de transacciones son importantes porque cuando se toman marcan VLF inactivos que se pueden usar para escribir nuevas transacciones.