Sistema de Recuperación

Anuncio
Sistema de Recuperación
Carlos A. Olarte ([email protected])
BDII
Carlos A. Olarte ([email protected]) 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 ([email protected]) BDII
Sistema de Recuperación
Propiedades ACID
Atomicidad
Consistencia
Aislamiento
Durabilidad
Carlos A. Olarte ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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
2
3
Escribir el primer bloque
Escribir el segundo bloque
Salida OK (completa) si ambas escrituras son exitosas
Carlos A. Olarte ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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
2
3
Escritura fı́sica de los registros del R.H
Escritura de los bloques en memoria intermedia que hayan sido
modificados
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 ([email protected]) 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 ([email protected]) BDII
Sistema de Recuperación
Continuación
Carlos A. Olarte ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) 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 ([email protected]) BDII
Sistema de Recuperación
Gestión de Memoria Intermedia
Mem Virtual del S.O
Implementar la memoria
intermedia en la memoria
virtual del S.O
El S.O es quien controla
la memoria virtual
Provoca doble escritura:
Intercambio → Principal
→ Disco
Carlos A. Olarte ([email protected]) BDII
Mem Principal
Reservar parte de la
memoria principal para su
utilización exclusiva por
parte de la B.D
Disminuye los recursos
para otras aplicaciones
Memoria ociosa en
algunos instantes
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 ([email protected]) BDII
Sistema de Recuperación
Descargar