Recuperacion
de Información en Bases de
Datos
[EN - 21]
CSI-INCO
Fundamentos de Bases de Datos
1
De que hay que Recuperarse?
●
En un sistema, se pueden dar fallas que pongan en riesgo la
integridad y la existencia misma de la base y por lo tanto de los
datos.
–
–
Error en la transacción o del sistema: Ej. División por 0
–
Excepciones sin programar. Ej.no están los datos necesarios para realizar
la transacción.
–
Por el control de concurrencia. Ej. Para evitar deadlock.
–
Falla en el disco.
–
●
Fallas en la CPU: Ej. falla en la memoria.
Catástrofes. Ej. Incendios, robo, etc.
En cualquier caso, el DBMS debe poder recuperar un estado
consistente y conocido de la base.
CSI-INCO
Fundamentos de Bases de Datos
21
Conceptos de Recuperación de
Información: Temario
●
Conceptos Basicos
–
Escenario de Trabajo.
–
El Log
–
Algoritmos de Recuperación
–
Checkpoint
–
Rollback
●
Actualización Diferida
●
Actualización Inmediata
●
Shadow Pages
CSI-INCO
Fundamentos de Bases de Datos
3
Escenario de Trabajo
El LOG de la base es el registro de todaslas operaciones que realizan en cada
transacción.
DBMS
Log
CSI-INCO
BD
Fundamentos de Bases de Datos
4
2
El Log del DBMS
●
Es un registro de la actividad sobre la base, típicamente
con entradas como las siguientes:
–
[start_transaction,T]: Comenzó la transacción T
–
[write_item,T,X,v_ant,v_actual]: La transacción T cambió
el item X del valor v_ant al valorv_act.
–
[read_item,T,X]: La transacción T leyó el valor del item X
–
[commit,T]: La transacción T confirma que todos los efectos
deben ser permanentes en la base.
–
[abort, T]: La transacción T abortó, por lo que ningún
cambio realizado por T debe ser permanente en la base
CSI-INCO
Fundamentos de Bases de Datos
5
Construcción y Uso del Log.
●
●
Cada vez queuna transacción va a realizar una
operación en la base, se agrega un registro en el log.
Típicamente esta actualización se hace en un buffer en
memoria, por lo que cuando una transacción T
confirma:
–
–
●
Primero se baja a disco todo el log de T que ya no esté
guardado.
Luego se actualiza la base con los efectos de la transacción.
Nunca se debe perder a la vez la base y el log porlo
que:
–
–
Deben estar en discos distintos
Deben realizarse respaldos independientes de uno y otro.
CSI-INCO
Fundamentos de Bases de Datos
6
3
Algoritmos de Recuperación
●
Si hubo un desastre (se pierde el disco, etc.) entonces:
–
–
–
●
Se debe recuperar el último respaldo conocido de la base.
Se debe recuperar el LOG hasta donde se pueda
Se deben rehacer(redo) todas las operaciones indicadas en el
log desde el momento en que se hizo el respaldo a la base.
Si la falla fue menor (corte de energía, falla en la red,
etc):
–
–
puede ser que haya que deshacer (undo) cambios ya
realizados.
puede ser que haya que rehacer cambios que no se hayan
confirmado.
CSI-INCO
Fundamentos de Bases de Datos
7
Algoritmos de Recuperación:Actualización Diferida e Inmediata
●
Si la falla no fue catastrófica, hay dos técnicas básicas:
–
Actualización Diferida: Cada transacción trabaja en un área
local de disco o memoria y recién se baja al disco después que
la transacción alcanza el commit.
●
–
Actualización Inmediata: La base es actualizada antes de
que la transacción alcance el commit.
●
●
Si hay un abort o unafalla, no es necesario deshacer ninguna
operación (NO-Undo/Redo).
Si hay un abort o falla, se deben deshacer las operaciones de la
transacción.
Siempre se graba primero el Log para garantizar la
recuperación.
CSI-INCO
Fundamentos de Bases de Datos
8
4
BeFore IMage y AFter IMage
●
Para que el mecanismo de recuperación sea viable, es
necesario considerar al menos dos...
Regístrate para leer el documento completo.