Historial de acciones ejecutadas por un sistema gestor 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 pista de auditoría ) es un historial de acciones ejecutadas por un sistema de gestión de bases de datos utilizado para garantizar las propiedades de ACID ante caídas o fallos de hardware. Físicamente, un registro es un archivo que enumera los cambios en la base de datos, almacenado en un formato de almacenamiento estable.
Si, después de un inicio, la base de datos se encuentra en un estado inconsistente o no se cerró correctamente, el sistema de administración de la base 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 están comprometidas pero cuyos cambios aún no se materializaron en la base de datos. Ambos se hacen para garantizar la atomicidad y durabilidad de las transacciones.
Este término no debe confundirse con otros registros legibles por humanos que normalmente proporciona 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): una identificación única 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 .
- Anterior LSN : un enlace a su último registro. Esto implica que los registros de la base de datos se construyen en forma de lista vinculada .
- 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 desencadenaron la escritura del 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 indica arriba).
- Actualizar registro registra una actualización (cambio) en la base de datos. Incluye esta información extra:
- PageID : una referencia al ID de página 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 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 registro de compensación (CLR) anota la reversión de un cambio particular en la base de datos. Cada uno se 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 extra:
- undoNextLSN : este campo contiene el LSN del siguiente registro que se va a deshacer para la transacción que escribió el último registro de actualización.
- Commit Record anota una decisión de confirmar una transacción.
- Abort Record registra una decisión de abortar y, por lo tanto, revertir una transacción.
- Checkpoint Record señala que se ha realizado un punto de control. Estos se utilizan para acelerar la recuperación. Registran información que elimina la necesidad de leer mucho en el pasado del registro. Esto varía según el algoritmo del punto de control. Si todas las páginas sucias se vacían al crear el punto de control (como en PostgreSQL ), podría contener:
- redoLSN : esta es una referencia al primer registro que corresponde a una página sucia. es decir, la primera actualización que no se publicó en el momento del punto de control. Aquí es donde debe comenzar la rehacer en la recuperación.
- undoLSN : Esta es una referencia al registro más antiguo de la transacción en curso más antigua. Este es el registro más antiguo necesario para deshacer todas las transacciones en curso.
- El Registro de finalización señala que se ha realizado todo el trabajo para esta transacción en particular. (Se ha comprometido por completo o se ha abortado)
Ver 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 del registro de transacciones de SQL Server, por Crowe, Chizek, 11 de noviembre de 2004
- ^ neurobs.com, archivos de registro