sistema de recuperación - pujcatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · se...
TRANSCRIPT
Sistema de Recuperacion
Carlos A. Olarte ([email protected])BDII
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Contenido
1 Introduccion
2 Medios de Almacenamiento
3 Registro Historico
4 Paginacion en la sombra
5 Perdida de Almacenamiento
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Propiedades ACID
Atomicidad
Consistencia
Aislamiento
Durabilidad
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Tipos de Fallo
Fallos en la transaccion: Tanto logicos (violacion derestricciones, tipos incompatibles, etc) como del sistema(interbloqueos, espacio insuficiente, etc)
Caıdas del Sistema: Mal funcionamiento del DBMS y/o delSistema Operativo
Fallos Fısicos: Errores de I/O o destruccion fısica del medio(desastres)
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Soluciones
Almacenar estructuras de datos adicionales mientras seprocesan las transacciones
Implementar mecanismos de recuperacion y ejecutarloscuando sea necesario para retornar a un estado consistente
Backups (unica forma de recuperarse de los errores fısicos)
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Medios de Almacenamiento
Almacenamiento Volatil: RAM
Almacenamiento No Volatil: Memoria secundaria
Almacenamiento Estable: Perdura en el tiempo
Diferencias En Costos?, velocidad de Acceso?, Capacidad?
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Almacenamiento Estable
Se debe replicar la informacion en varios medios no volatiles.Posibles mecanismos:
Arreglos de Discos
Imagenes de Discos
Copias Remotas
Procedimiento:1 Escribir el primer bloque2 Escribir el segundo bloque3 Salida OK (completa) si ambas escrituras son exitosas
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Esquema de Almacenamiento
Administracion del buffer
Administracion de los archivos
Bloque: Unidad basica detransferencia
Bloques Fısicos: Bloques queresiden en disco
Bloques de mem intermedia:Bloques que residen en memoriaprincipal
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Acceso a los datos
Entrada(B): Transferencia debloques hacia MPpal(Operaciones de Lectura)
Salida(B): Transferencia debloques hacia disco(Operaciones de Escritura)
No necesariamente al efectuar Escribir(X) se efectuainmediatamente la salida del bloque (no necesariamente estalleno). El gestor de memoria intermedia puede tambien forzar lasalida de un bloque (requiere el espacio)
Que problemas puede traer forzar la salida? o no escribirinmediatamente el bloque?
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Esquemas de Recuperacion
Registro historico
Escritura DifereidaEscritura InmediataPuntos de Revision
Paginacion en la sombra
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Registro Historico
Se mantiene un rastro de las operaciones que han realizado lastransacciones. 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 Recuperacion
Modificacion Diferida
Los cambios no se reflejan directamente en disco hasta que secompromete la transaccion. Se utiliza el R.H para ejecutar lasescriturasEstrategia:
1 Registrar en el RH el inicio de la transaccion
2 Por cada escritura registrar el valor modificado
3 Registrar el compromiso de la transaccion
4 Antes de realizar las escrituras, el R.H debe estar enalmacenamiento estable.
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Continuacion
Recuperacion ante fallas:
Encontrar en el R.H las transacciones Iniciadas yComprometidas
Realizar rehacer(Ti ) para reflejar los cambios en disco
La operacion rehacer debe ser Idempotente (por que?)
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Modificacion Inmediata
Se pueden presentar escrituras fısicas cuando la transaccion aun seencuentra en estado activa.
1 Registrar el inicio de la transaccion
2 Por cada modificacion escribir el valor anterior y el valor nuevo
3 Registrar el compromiso de la transaccion
Mecanismo de recuperacion
1 Realizar rehacer(Ti ) sobre las transacciones comprometidas
2 Realizar deshacer(Ti ) (tambien idempotente) sobre lastransacciones no comprometidas
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Puntos de Revision
Evitan recorrer totalmente el registro historico en cadarecuperacion
Evitan rehacer transacciones que ya se han reflejado en eldisco
Pasos para la revision1 Escritura fısica de los registros del R.H2 Escritura de los bloques en memoria intermedia que hayan sido
modificados3 Escribir < revisado > en el R.H
Mientras se efectua la revision no se permite la actualizacionde datos ni escrituras en el R.H
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Continuacion
Estrategia de recuperacion:
1 Encontrar la ultima transaccion Ti que comenzo su ejecucionantes del ultimo punto de revision
2 Encontrar las transacciones que iniciaron su ejecucion despuesde Ti
3 Aplicar la operacion deshacer(Tj) a las transacciones nocomprometidas
4 Aplicar la operacion rehacer(Tj) a las transaccionescomprometidas
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Continuacion
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Transacciones Concurrentes y Recuperacion
Adicionar una lista de las transacciones activas en el momentode la revision (< revisionL >)
Por cada Ti comprometida adicionarla a la lista de rehacer
Por cada Ti iniciada adicionarla a la lista de deshacer si no seencuentra en la lista de rehacer
Por cada Ti en la lista de revision, adicionarla a la lista dedeshacer si no se encuentra en la lista de rehacer
Deshacer las transacciones de la lista de deshacer de atrashacia adelante
Rehacer las transacciones de la lista de rehacer desde el puntode revision hacia adelante
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Consideraciones de Eficiencia
Los registros del R.H no se pueden escribir en almacenamientoestable inmediatamente. Por eficiencia se mantienen en mem ppal(bloques) . Sin embargo para evitar perdidas de consistencia dedebe tener en cuenta:
La transaccion se encuentra comprometida solamente si todossus registros se encuentran en almacenamiento estable
Antes de transferir un bloque de datos, los registros del R.Hque afecten dicho bloque deben estar en almacenamientoestable
Lo anterior se denomina Registro de Escritura Anticipada (RAE).En ocasiones el administrador del buffer forza la escritura delregistro historico (esto puede conducir a un estado inconsistente?)
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Paginacion en la sombra
Pagina: Conjunto de bloques de longitud fija
Tabla de Paginas: Tabla que contiene apuntadores a laspaginas en disco (permite localizar las paginas)
Se utiliza una tabla de paginas sombra que mantiene el estadoanterior (consistente) de la BD y los cambios se reflejan en latabla actual. Cuando se compromete la transaccion semodifica la tabla sombra
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Continuacion
Procedimiento de Escritura
1 Ejecutar Entrada(X) si la paginano se encuentra en mem ppal
2 Si es la primera escritura sobrela pagina, encontrar una paginalibre y hacer que la paginaactual apunte a dicha pagina
3 Realizar la modificacion sobre lanueva pagina
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Continuacion
Procedimiento para el compromiso
Escribir las paginas de memoria principal al disco
Escribir en disco la tabla actual de paginas
Modificar el “apuntador” de la base de datos para que la tablasombra sea la nueva tabla escrita
La recuperacion no es necesaria (es inmediata). La tabla sombrasiempre debe estar en almacenamiento estable. La tabla actualpuede estar en memoria principal
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Registro Historico Vs Paginacion en la sombra
Ventajas
No hay necesidad de mantener un registro historico
La recuperacion es inmediata
Desventajas
Sobrecarga en el compromiso: Se requiere la escritura de losbloques de datos y la tabla actual de paginas
Fragmentacion de datos: Las paginas no quedan continuasdespues de varias modificaciones
Recoleccion de Basura: Se deben recuperar las paginas quecontenıan los datos antes de ser modificados
Difıcil extender este esquema para ejecuciones concurrentes detransacciones
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Gestion de Memoria Intermedia
Mem Virtual del S.O
Implementar la memoriaintermedia en la memoriavirtual del S.O
El S.O es quien controlala memoria virtual
Provoca doble escritura:Intercambio → Principal→ Disco
Mem Principal
Reservar parte de lamemoria principal para suutilizacion exclusiva porparte de la B.D
Disminuye los recursospara otras aplicaciones
Memoria ociosa enalgunos instantes
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion
Perdida de Almacenamiento
Las tecnicas anteriores solo son utiles si no hay perdida delalmacenamiento no volatil. Si esto sucede, se debe recurrir a unbackup para recuperar nuevamente un estado consistente de labase de datos.Ejemplos
Exports / Imports (Oracle, MySql, etc)
Backups Incrementales
Uso de Crontabs
Copias Remotas
Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion