Historial de acciones ejecutadas por un sistema de gestión de bases de datos
En el campo de las bases de datos en informática , un registro de transacciones (también diario de transacciones , registro de base de datos , registro binario o registro de auditoría ) es un historial de acciones ejecutadas por un sistema de gestión de bases de datos que se utiliza para garantizar las propiedades ACID ante fallos o caídas de hardware. Físicamente, un registro es un archivo que enumera los cambios realizados en la base de datos, almacenado en un formato de almacenamiento estable.
Si, después de un inicio, se encuentra que la base de datos se encuentra en un estado inconsistente o no se ha cerrado correctamente, el sistema de administració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 estas 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 datos alterados por un proceso determinado. [1] [2] [3] [4]
Anatomía de un registro de base de datos general
Un registro de base de datos se compone de:
- Número de secuencia de registro (LSN): un identificador único para un registro. Con los LSN, los registros se pueden recuperar en tiempo constante. La mayoría de los LSN se asignan en orden monótonamente creciente, lo que resulta útil en algoritmos de recuperación , como ARIES .
- LSN anterior : un vínculo a su último registro. Esto implica que los registros de la base de datos se construyen en forma de lista enlazada .
- Número de identificación de transacción : una referencia a la transacción de la base de datos que genera el registro.
- 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 bases de datos
Todos los registros incluyen los atributos de registro generales anteriores y también otros atributos según su tipo (que se registra en el atributo Tipo , como se indicó anteriormente).
- Registro de actualizaciones El registro de actualizaciones registra 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 incluyan una o ambas imágenes.
- El registro de compensación (CLR) registra la reversión de un cambio particular en la base de datos. Cada uno corresponde exactamente con otro registro de actualización (aunque el registro de actualización correspondiente normalmente no se almacena en el registro de compensación). Incluye esta información adicional:
- undoNextLSN : este campo contiene el LSN del próximo registro que se debe deshacer para la transacción que escribió el último registro de actualización.
- El registro de confirmación anota una decisión de confirmar una transacción.
- El registro de aborto anota una decisión de abortar y, por lo tanto, revertir una transacción.
- Los registros de puntos de control indican que se ha creado un punto de control. Se utilizan para acelerar la recuperación. Registran información que elimina la necesidad de leer un largo trecho del pasado del registro. Esto varía según el algoritmo de punto de control. Si se eliminan todas las páginas sucias al crear el punto de control (como en PostgreSQL ), podría contener:
- redoLSN : es una referencia al primer registro de registro que corresponde a una página sucia, es decir, la primera actualización que no se eliminó en el momento del punto de control. Aquí es donde debe comenzar la operación redo en la recuperación.
- undoLSN : es una referencia al registro más antiguo de la transacción en curso más antigua. Es el registro más antiguo necesario para deshacer todas las transacciones en curso.
- El registro de finalización indica que se ha realizado todo el trabajo para esta transacción en particular (se ha confirmado por completo o se ha cancelado).
Véase también
Fuentes
Referencias
- ^ Microsoft, El registro de transacciones (SQL Server)
- ^ sqlshack.com, Guía para principiantes sobre registros de transacciones de SQL Server, 11 de febrero de 2014 por Ivan Stankovic
- ^ techrepublic.com, Comprensión de 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