Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se...

25
Sistema de Recuperaci´ on Carlos A. Olarte ([email protected]) BDII Carlos A. Olarte ([email protected]) BDII Sistema de Recuperaci´ on

Transcript of Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se...

Page 1: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

Sistema de Recuperacion

Carlos A. Olarte ([email protected])BDII

Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion

Page 2: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 3: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

Propiedades ACID

Atomicidad

Consistencia

Aislamiento

Durabilidad

Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion

Page 4: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 5: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 6: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 7: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 8: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 9: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 10: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

Esquemas de Recuperacion

Registro historico

Escritura DifereidaEscritura InmediataPuntos de Revision

Paginacion en la sombra

Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion

Page 11: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 12: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 13: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 14: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 15: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 16: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 17: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

Continuacion

Carlos A. Olarte ([email protected]) BDII Sistema de Recuperacion

Page 18: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 19: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 20: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 21: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 22: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 23: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 24: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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

Page 25: Sistema de Recuperación - PUJCatlas.puj.edu.co/~caolarte/puj/cursos/cc100/files/clases... · Se debe replicar la informaci´on en varios medios no vol´atiles. ... base de datos.

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