Digamos, para SQLServer2008R2 y superior, con bases de datos de modo de recuperación completa.
Siempre pense :
Cuando se confirma una transacción (COMMIT), la transacción se escribe en el registro de transacciones en la RAM.
Cuando ocurre un PUNTO DE VERIFICACIÓN (después de un tiempo y / o algunas transacciones y otros criterios), las transacciones entre el último PUNTO DE VERIFICACIÓN y el actual se escriben en el disco.
Cuando ocurre un REGISTRO DE COPIA DE SEGURIDAD, los datos se escriben en el archivo MDF.
¿Estoy en lo correcto? Algunos de mis colegas dicen que estoy equivocado, y es difícil encontrar la respuesta correcta, incluso con el BOL.
¡Gracias!
sql-server
Patator
fuente
fuente
Respuestas:
Desafortunadamente, hasta ahora hay una serie de errores en las respuestas con respecto a cómo funciona COMMIT, por lo que agregaré otro. Consulte Cómo funciona: Presentación de E / S de SQL Server de Bob Dorr para obtener detalles y conceptos básicos de E / S de SQL Server 2000 . Así es como funciona:
Todas las escrituras (cambios) de datos completamente registrados se producen exactamente en la secuencia siguiente (consulte Comprensión de cómo SQL Server ejecuta una consulta: Escribir datos ):
Un compromiso hace lo siguiente
Un PUNTO DE CONTROL hace lo siguiente (simplificado), vea Cómo funcionan los puntos de control y qué se registra :
Las escrituras funcionan de manera diferente para operaciones mínimamente registradas, vea Operaciones que pueden ser mínimamente registradas . Aproximadamente las operaciones mínimamente registradas actúan de la siguiente manera (simplificada):
fuente
Una transacción se escribe en el registro de transacciones incluso antes de cambiar la página o los datos según lo solicitado por la consulta. Esto se llama registro de escritura anticipada (WAL). Si SQL Server se bloquea mientras se actualiza una página en la memoria, WAL garantiza que el motor de base de datos pueda leer el registro de transacciones y revertir la transacción. Esta es una propiedad ACID de un RDBMS.
Un punto de control vacía las páginas sucias del búfer al disco. Se comporta un poco diferente para tempdb . Una página sucia es aquella que ha cambiado desde que se leyó desde el disco. Este proceso de punto de control crea una marca en el registro de transacciones hasta el punto en el que se han confirmado las transacciones. Después de una falla, la recuperación sabe que todas las transacciones hasta esa marca se habían comprometido. Puede emitir un punto de control manualmente con un comando TSQL.
No, cuando ocurre el registro de respaldo, SQL Server copia la información del registro de transacciones del archivo de registro de la base de datos al disco donde está escribiendo el respaldo. Una operación de copia de seguridad lee datos del disco y los escribe en el disco.
Me gustaría que leyeras los enlaces a continuación
Comprender el registro y la recuperación en SQL Server Ya señalado por Mark
Internals de SQL Server 2008 y libro de solución de problemas
Arquitectura y gestión de registros de transacciones
fuente
A continuación se aclararán cosas para usted:
Referirse a :
fuente