En el ámbito de las bases de datos en informática , un registro de transacciones (también conocido como diario de transacciones , registro de base de datos , registro binario o pista de auditoría ) es un historial de las acciones ejecutadas por un sistema de gestión de bases de datos que se utiliza para garantizar las propiedades ACID ante fallos o errores de hardware. Físicamente, un registro es un archivo que enumera los cambios realizados en la base de datos y se almacena en un formato de almacenamiento estable.
Si, tras el inicio, la base de datos se encuentra en un estado inconsistente o no se ha cerrado correctamente, el sistema de gestión de bases de datos revisa los registros de la base de datos en busca de transacciones no confirmadas y revierte los cambios realizados por dichas transacciones . Además, se vuelven a aplicar todas las transacciones que ya se han confirmado, pero cuyos cambios aún no se han materializado en la base de datos. Ambas acciones se realizan para garantizar la atomicidad y la durabilidad de las transacciones.
Este término no debe confundirse con otros registros legibles por humanos que suele proporcionar un sistema de gestión de bases de datos.
En los sistemas de gestión de bases de datos , un diario es el registro de los datos modificados por un proceso determinado. [ 1 ] [ 2 ] [ 3 ] [ 4 ]
Anatomía de un registro de base de datos general
Un registro de la base de datos se compone de:
- Número de secuencia de registro (LSN): Un identificador único para un registro de log. Con los LSN, los logs se pueden recuperar en tiempo constante. La mayoría de los LSN se asignan en orden monótonamente creciente, lo cual es útil en algoritmos de recuperación , como ARIES .
- LSN anterior : Un enlace a su último registro de log. Esto implica que los registros de la base de datos se construyen en forma de lista enlazada .
- Número de identificación de la transacción : una referencia a la transacción de la base de datos que generó el registro de log.
- Tipo : Describe el tipo de registro de la base de datos.
- Información sobre los cambios reales que provocaron que se escribiera el registro.
Tipos de registros de log de base de datos
Todos los registros incluyen los atributos generales de registro mencionados anteriormente, y también otros atributos que dependen de su tipo (que se registra en el atributo Tipo , como se indicó anteriormente).
- El registro de actualización indica una actualización (cambio) en la base de datos. Incluye esta información adicional:
- PageID : Una referencia al ID de la página modificada.
- Longitud y desplazamiento : Normalmente se incluyen la longitud en bytes y el desplazamiento de la página.
- Imágenes de antes y después : Incluye el valor de los bytes de la página antes y después del cambio de página. Algunas bases de datos pueden tener registros que incluyen una o ambas imágenes.
- El registro de compensación (CLR) registra la reversión de un cambio específico en la base de datos. Cada uno se corresponde con exactamente otro registro de actualización (aunque el registro de actualización correspondiente no suele almacenarse en el registro de compensación). Incluye esta información adicional:
- undoNextLSN : Este campo contiene el LSN del siguiente registro de registro que se debe deshacer para la transacción que escribió el último registro de actualización.
- El registro de confirmación indica la decisión de confirmar una transacción.
- Abort Record indica la decisión de abortar y, por lo tanto, revertir una transacción.
- El registro de punto de control indica que se ha creado un punto de control. Estos se utilizan para acelerar la recuperación. Registran información que elimina la necesidad de leer gran parte del historial del registro. Esto varía según el algoritmo de punto de control. Si todas las páginas modificadas se vacían al crear el punto de control (como en PostgreSQL ), podría contener:
- redoLSN : Esta es una referencia al primer registro de log que corresponde a una página modificada, es decir, la primera actualización que no se guardó en el punto de control. Aquí es donde debe comenzar la recuperación.
- undoLSN : Esta es una referencia al registro de log más antiguo de la transacción en curso más antigua. Este es el registro de log más antiguo necesario para deshacer todas las transacciones en curso.
- El registro de finalización indica que se ha completado todo el trabajo para esta transacción en particular. (Se ha confirmado o cancelado por completo).
Véase también
Fuentes
Referencias
- ↑ Microsoft, El registro de transacciones (SQL Server)
- ↑ sqlshack.com, Guía para principiantes sobre los registros de transacciones de SQL Server, 11 de febrero de 2014, por Ivan Stankovic
- ↑ techrepublic.com, Comprender la importancia de los registros de transacciones en SQL Server, Mantenimiento de registros de transacciones de SQL Server, Por Crowe, Chizek, 11 de noviembre de 2004
- ↑ neurobs.com, Archivos de registro
- Sistemas de gestión de bases de datos
- Procesamiento de transacciones
- Registro informático