Está en la página 1de 25

Sistema de Recuperación

Carlos A. Olarte (carlosolarte@puj.edu.co)


BDII

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Contenido

1 Introducción

2 Medios de Almacenamiento

3 Registro Histórico

4 Paginación en la sombra

5 Pérdida de Almacenamiento

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Propiedades ACID

Atomicidad
Consistencia
Aislamiento
Durabilidad

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Tipos de Fallo

Fallos en la transacción: Tanto lógicos (violación de


restricciones, tipos incompatibles, etc) como del sistema
(interbloqueos, espacio insuficiente, etc)
Caı́das del Sistema: Mal funcionamiento del DBMS y/o del
Sistema Operativo
Fallos Fı́sicos: Errores de I/O o destrucción fı́sica del medio
(desastres)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Soluciones

Almacenar estructuras de datos adicionales mientras se


procesan las transacciones
Implementar mecanismos de recuperación y ejecutarlos
cuando sea necesario para retornar a un estado consistente
Backups (única forma de recuperarse de los errores fı́sicos)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Medios de Almacenamiento

Almacenamiento Volátil: RAM


Almacenamiento No Volátil: Memoria secundaria
Almacenamiento Estable: Perdura en el tiempo
Diferencias En Costos?, velocidad de Acceso?, Capacidad?

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Almacenamiento Estable

Se debe replicar la información en varios medios no volátiles.


Posibles mecanismos:
Arreglos de Discos
Imágenes de Discos
Copias Remotas
Procedimiento:
1 Escribir el primer bloque
2 Escribir el segundo bloque
3 Salida OK (completa) si ambas escrituras son exitosas

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Esquema de Almacenamiento

Administración del buffer


Administración de los archivos
Bloque: Unidad básica de
transferencia
Bloques Fı́sicos: Bloques que
residen en disco
Bloques de mem intermedia:
Bloques que residen en memoria
principal

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Acceso a los datos

Entrada(B): Transferencia de
bloques hacia MPpal
(Operaciones de Lectura)
Salida(B): Transferencia de
bloques hacia disco
(Operaciones de Escritura)

No necesariamente al efectuar Escribir(X) se efectúa


inmediatamente la salida del bloque (no necesariamente esta
lleno). El gestor de memoria intermedia puede también forzar la
salida de un bloque (requiere el espacio)

Que problemas puede traer forzar la salida? o no escribir


inmediatamente el bloque?

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Esquemas de Recuperación

Registro histórico
Escritura Difereida
Escritura Inmediata
Puntos de Revisión
Paginación en la sombra

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Registro Histórico

Se mantiene un rastro de las operaciones que han realizado las


transacciones. Por Ej:

<Ti inicia>
<Ti,Q,1,4>
<Tj inicia>
<Tj,M,5,3>
<Tj commit>
<Ti,M,5,3>
<Ti commit>

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Modificación Diferida

Los cambios no se reflejan directamente en disco hasta que se


compromete la transacción. Se utiliza el R.H para ejecutar las
escrituras
Estrategia:
1 Registrar en el RH el inicio de la transacción
2 Por cada escritura registrar el valor modificado
3 Registrar el compromiso de la transacción
4 Antes de realizar las escrituras, el R.H debe estar en
almacenamiento estable.

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Continuación

Recuperación ante fallas:


Encontrar en el R.H las transacciones Iniciadas y
Comprometidas
Realizar rehacer(Ti ) para reflejar los cambios en disco

La operación rehacer debe ser Idempotente (por qué?)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Modificación Inmediata

Se pueden presentar escrituras fı́sicas cuando la transacción aun se


encuentra en estado activa.
1 Registrar el inicio de la transacción
2 Por cada modificación escribir el valor anterior y el valor nuevo
3 Registrar el compromiso de la transacción
Mecanismo de recuperación
1 Realizar rehacer(Ti ) sobre las transacciones comprometidas
2 Realizar deshacer(Ti ) (también idempotente) sobre las
transacciones no comprometidas

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Puntos de Revisión

Evitan recorrer totalmente el registro histórico en cada


recuperación
Evitan rehacer transacciones que ya se han reflejado en el
disco
Pasos para la revisión
1 Escritura fı́sica de los registros del R.H
2 Escritura de los bloques en memoria intermedia que hayan sido
modificados
3 Escribir < revisado > en el R.H
Mientras se efectúa la revisión no se permite la actualización
de datos ni escrituras en el R.H

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Continuación

Estrategia de recuperación:
1 Encontrar la última transacción Ti que comenzó su ejecución
antes del último punto de revisión
2 Encontrar las transacciones que iniciaron su ejecución después
de Ti
3 Aplicar la operación deshacer(Tj ) a las transacciones no
comprometidas
4 Aplicar la operación rehacer(Tj ) a las transacciones
comprometidas

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Continuación

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Transacciones Concurrentes y Recuperación

Adicionar una lista de las transacciones activas en el momento


de la revisión (< revisionL >)
Por cada Ti comprometida adicionarla a la lista de rehacer
Por cada Ti iniciada adicionarla a la lista de deshacer si no se
encuentra en la lista de rehacer
Por cada Ti en la lista de revisión, adicionarla a la lista de
deshacer si no se encuentra en la lista de rehacer
Deshacer las transacciones de la lista de deshacer de atrás
hacia adelante
Rehacer las transacciones de la lista de rehacer desde el punto
de revisión hacia adelante

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Consideraciones de Eficiencia

Los registros del R.H no se pueden escribir en almacenamiento


estable inmediatamente. Por eficiencia se mantienen en mem ppal
(bloques) . Sin embargo para evitar pérdidas de consistencia de
debe tener en cuenta:
La transacción se encuentra comprometida solamente si todos
sus registros se encuentran en almacenamiento estable
Antes de transferir un bloque de datos, los registros del R.H
que afecten dicho bloque deben estar en almacenamiento
estable
Lo anterior se denomina Registro de Escritura Anticipada (RAE).
En ocasiones el administrador del buffer forza la escritura del
registro histórico (esto puede conducir a un estado inconsistente?)

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Paginación en la sombra

Página: Conjunto de bloques de longitud fija


Tabla de Páginas: Tabla que contiene apuntadores a las
páginas en disco (permite localizar las páginas)
Se utiliza una tabla de páginas sombra que mantiene el estado
anterior (consistente) de la BD y los cambios se reflejan en la
tabla actual. Cuando se compromete la transacción se
modifica la tabla sombra

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Continuación

Procedimiento de Escritura
1 Ejecutar Entrada(X) si la página
no se encuentra en mem ppal
2 Si es la primera escritura sobre
la página, encontrar una página
libre y hacer que la página
actual apunte a dicha página
3 Realizar la modificación sobre la
nueva página

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Continuación

Procedimiento para el compromiso


Escribir las páginas de memoria principal al disco
Escribir en disco la tabla actual de páginas
Modificar el “apuntador” de la base de datos para que la tabla
sombra sea la nueva tabla escrita

La recuperación no es necesaria (es inmediata). La tabla sombra


siempre debe estar en almacenamiento estable. La tabla actual
puede estar en memoria principal

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Registro Histórico Vs Páginación en la sombra

Ventajas
No hay necesidad de mantener un registro histórico
La recuperación es inmediata
Desventajas
Sobrecarga en el compromiso: Se requiere la escritura de los
bloques de datos y la tabla actual de páginas
Fragmentación de datos: Las páginas no quedan continuas
después de varias modificaciones
Recolección de Basura: Se deben recuperar las páginas que
contenı́an los datos antes de ser modificados
Difı́cil extender este esquema para ejecuciones concurrentes de
transacciones

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Gestión de Memoria Intermedia

Mem Virtual del S.O Mem Principal


Implementar la memoria Reservar parte de la
intermedia en la memoria memoria principal para su
virtual del S.O utilización exclusiva por
El S.O es quien controla parte de la B.D
la memoria virtual Disminuye los recursos
Provoca doble escritura: para otras aplicaciones
Intercambio → Principal Memoria ociosa en
→ Disco algunos instantes

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación


Pérdida de Almacenamiento

Las técnicas anteriores solo son útiles si no hay pérdida del


almacenamiento no volátil. Si esto sucede, se debe recurrir a un
backup para recuperar nuevamente un estado consistente de la
base de datos.
Ejemplos
Exports / Imports (Oracle, MySql, etc)
Backups Incrementales
Uso de Crontabs
Copias Remotas

Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Sistema de Recuperación

También podría gustarte