Te sugerimos que revises esta resolución en un entorno controlado antes de pasarlo a producción, saludos.
Solución:
MinLSN es el LSN de la transacción no confirmada más antigua.
esto no es exactamente true
LSN significa Número de secuencia de registro. Cada entrada de registro tiene un LSN y cada nueva entrada de registro se escribe en el extremo lógico del registro con un LSN más alto que el LSN anterior.
Usando esta secuencia de registro simplificada:
LSN Log
80 Begin Tran 1
82 Begin Tran 2
83 Update Tran 2
84 Check Point
85 Update 1
86 Commit Tran 1
87 Check Point
88 Update Tran 2
Los próximos LSN serán 89, 90, …
El número de secuencia de registro del primer registro de registro que se requiere para realizar con éxito una recuperación completa de la base de datos se registra en los registros de punto de control. Este LSN se llama LSN de recuperación mínima o LSN mín..
MinLSN es el mínimo de:
- LSN del comienzo de la transacción activa más antigua
- LSN del inicio del último punto de control
- LSN del comienzo de la transacción de replicación más antigua que aún no se ha replicado
Si observamos los registros LSN anteriores, los candidatos a MinLSN son:
- Transacción activa más antigua =
Begin Tran 2
conLSN 82
- LSN del último punto de control =
LSN 87
Por lo tanto MinLSN es LSN 82
.
- ¿Qué contiene exactamente Active Log?
La lista de LSN que comienza en MinLSN y hasta el último LSN registrado se denomina Active Log
. Aquí, el registro activo se compone de LSN 82 a 88. MinLSN es solo el primer LSN del registro activo.
- ¿No se supone que debe contener todas las transacciones no comprometidas?
- ¿Contiene otros registros de registro que ya están confirmados?
Puede ver que el registro activo todavía contiene transacciones ya confirmadas (TRAN 1) porque sus LSN son más grandes que MinLSN.
- ¿Qué sucede con MinLSN y Active Log cuando ocurre un CHECKPOINT?
Cuando se produce un nuevo punto de control y se registra:
- Los registros LOG vinculados a una página sucia que se escriben en el disco se escriben de la memoria al disco antes de realizar cualquier cambio en la página. Esto garantiza la recuperación exitosa de la base de datos antes de escribir una página en el disco. Dado que los LOG se escriben secuencialmente, es posible que los registros en la memoria que no están relacionados con la página actual que se está escribiendo deban registrarse antes.
- Las páginas sucias se escriben en el disco (es decir, todas las páginas en la memoria que han cambiado desde el último punto de control o desde que se leyeron del disco, sin importar el estado de las transacciones),
-
Se crea el registro LOG del punto de control. Su LSN se compara con el LSN del comienzo de la transacción activa más antigua:
- Si su LSN es más pequeño, se convierte en el nuevo MinLSN.
- De lo contrario, el LSN de la transacción más antigua sigue siendo el MinLSN.