técnicas de recuperación de bases de datos bd ii: tema 5 universitat de valència profesores...

57
Técnicas de Técnicas de recuperación de recuperación de Bases de Datos Bases de Datos BD II: Tema 5 BD II: Tema 5 Universitat de València Universitat de València profesores Esther de Ves y profesores Esther de Ves y Vicente Cerverón Vicente Cerverón

Upload: cenobia-del-pino

Post on 23-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

Técnicas de Técnicas de recuperación de recuperación de Bases de DatosBases de Datos

BD II: Tema 5BD II: Tema 5Universitat de ValènciaUniversitat de València

profesores Esther de Ves y Vicente profesores Esther de Ves y Vicente CerverónCerverón

Page 2: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 2Universitat de València (Esther de Ves, Vicente Cerverón)

ÍndiceÍndice

1.1. Introducción.Introducción.

2.2. Conceptos básicos.Conceptos básicos.

3.3. Estructuras de datos y reglas básicas.Estructuras de datos y reglas básicas.

4.4. Procedimientos de recuperación.Procedimientos de recuperación.

5.5. Principales algoritmos de Principales algoritmos de recuperación.recuperación.

1.1. Actualización inmediataActualización inmediata

2.2. Actualización diferidaActualización diferida

3.3. Paginación en la sombraPaginación en la sombra

4.4. Algoritmo de recuperación ARIESAlgoritmo de recuperación ARIES

Page 3: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 3Universitat de València (Esther de Ves, Vicente Cerverón)

1. Introducción1. Introducción

Definición de Recuperación de una BD:Definición de Recuperación de una BD: restablecimiento de un estado correcto de la BD restablecimiento de un estado correcto de la BD

(consistente) después que un fallo del sistema (consistente) después que un fallo del sistema haya ocasionado que el estado actual sea haya ocasionado que el estado actual sea inconsistente.inconsistente.

Principios en los que se fundamenta: Principios en los que se fundamenta: redundancia física de los datosredundancia física de los datos..(disco-memoria, incluso disco-disco y redundancia (disco-memoria, incluso disco-disco y redundancia

múltiple)múltiple)

¿Quién se encarga de la recuperación?¿Quién se encarga de la recuperación?La recuperación la gestiona el módulo gestor de La recuperación la gestiona el módulo gestor de

recuperación del SGBD.recuperación del SGBD.

Todas las ideas de recuperación son independientes del modelo Todas las ideas de recuperación son independientes del modelo de BD utilizado; si bien asumiremos que el modelo es de BD utilizado; si bien asumiremos que el modelo es relacional.relacional.

Page 4: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 4Universitat de València (Esther de Ves, Vicente Cerverón)

Tipos de fallosTipos de fallosDurante la ejecución de las transacciones, una BD Durante la ejecución de las transacciones, una BD

puede sufrir diferentes fallos:puede sufrir diferentes fallos: Fallos de transacciónFallos de transacción::

Errores lógicosErrores lógicos: una transacción no puede completarse : una transacción no puede completarse por algún error interno a la misma.por algún error interno a la misma.

Errores del sistemaErrores del sistema: una transacción es abortada por el : una transacción es abortada por el SGBD (p.e. para asegurar la consistencia o evitar el SGBD (p.e. para asegurar la consistencia o evitar el bloqueo mortal).bloqueo mortal).

Fallos catastróficosFallos catastróficos: : que afectan al conjuntoque afectan al conjunto Caída del sistemaCaída del sistema: la falta de alimentación u otro : la falta de alimentación u otro

problema hardware (excepto de discos) detiene el problema hardware (excepto de discos) detiene el funcionamiento normal y produce la pérdida de la funcionamiento normal y produce la pérdida de la información en memoria volátil.información en memoria volátil.

Fallo del discoFallo del disco: se produce una destrucción total o : se produce una destrucción total o parcial de los datos almacenados en un disco.parcial de los datos almacenados en un disco.

Page 5: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 5Universitat de València (Esther de Ves, Vicente Cerverón)

Funcionamiento del módulo de Funcionamiento del módulo de recuperaciónrecuperación

Los algoritmos de recuperación son técnicas Los algoritmos de recuperación son técnicas para asegurar la consistencia de la BD y la para asegurar la consistencia de la BD y la atomicidad de las transacciones incluso en atomicidad de las transacciones incluso en presencia de fallos.presencia de fallos.

Para ello, los algoritmos de recuperación Para ello, los algoritmos de recuperación tienen dos procedimientos de actuación:tienen dos procedimientos de actuación:

1.1. acciones que se realizan durante el acciones que se realizan durante el funcionamiento normal para disponer de la funcionamiento normal para disponer de la información necesaria en caso de tener que información necesaria en caso de tener que recuperarse de un fallo;recuperarse de un fallo;

2.2. acciones que se realizan para recuperar la acciones que se realizan para recuperar la base de datos después de producirse un base de datos después de producirse un fallo.fallo.

Page 6: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 6Universitat de València (Esther de Ves, Vicente Cerverón)

2. Conceptos básicos2. Conceptos básicos

El sistema de recuperación se ocupa de que se El sistema de recuperación se ocupa de que se cumplan dos de las cumplan dos de las propiedades ACIDpropiedades ACID de las de las transacciones:transacciones:

La atomicidad implica sólo dos posibilidades para La atomicidad implica sólo dos posibilidades para las transacciones: las transacciones: abortarabortar (ninguno de sus acciones tiene efecto, y debe (ninguno de sus acciones tiene efecto, y debe

reiniciarse).reiniciarse). confirmarconfirmar (sus acciones tienen efecto permanente). (sus acciones tienen efecto permanente).

Transacción activa:Transacción activa: si ha empezado pero no ha si ha empezado pero no ha alcanzado un estado final (aborto o confirmación).alcanzado un estado final (aborto o confirmación).

Atomicidad: se ejecutan todas lasacciones o ninguna

Durabilidad:cuando una T se completa

los cambios realizados deben permanecer en el sistema

Almacenamientoestable

Page 7: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 7Universitat de València (Esther de Ves, Vicente Cerverón)

3. Estructuras de datos para la 3. Estructuras de datos para la recuperaciónrecuperación

El sistema de recuperación se apoya en El sistema de recuperación se apoya en una serie de elementos para realizar su una serie de elementos para realizar su funciónfunción

Realización de copias de seguridad.Realización de copias de seguridad. completas o incrementalescompletas o incrementales

Almacenamiento de una traza Almacenamiento de una traza que guarda las acciones (actualizaciones) que guarda las acciones (actualizaciones)

realizadasrealizadas (también llamada diario o (también llamada diario o loglog ) )

Almacenamiento estable

Page 8: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 8Universitat de València (Esther de Ves, Vicente Cerverón)

Copia de seguridad: es una copia total de la BD realizada en un momento

en que la BD está en un estado consistente. o es una copia de seguridad incremental, formada

sólo por las modificaciones realizadas desde la última copia de seguridad incremental.

Se utiliza tras un fallo del medio (fallo catastrófico).

Se puede realizar con la BD parada o en funcionamiento.

Estructuras de datos: copia de Estructuras de datos: copia de seguridadseguridad

Page 9: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 9Universitat de València (Esther de Ves, Vicente Cerverón)

Estructuras de datos: trazaEstructuras de datos: traza La La trazatraza (o diario, o (o diario, o loglog ) guarda información sobre las ) guarda información sobre las

actualizaciones realizadas en la BD (información necesaria actualizaciones realizadas en la BD (información necesaria para realizar la recuperación en caso de fallo).para realizar la recuperación en caso de fallo).

Tiene 4 (o 5) Tiene 4 (o 5) tipos de entradastipos de entradas (registros de la traza): (registros de la traza):

Si se evita la restauración en cascada (lo habitual, ya que Si se evita la restauración en cascada (lo habitual, ya que se suele usar bloque en dos fases estricto), no es necesario se suele usar bloque en dos fases estricto), no es necesario registrar traza de las lecturas, excepto para auditoría.registrar traza de las lecturas, excepto para auditoría.

Se usa la Se usa la escritura anticipada de la trazaescritura anticipada de la traza: la traza de : la traza de las acciones se guardan en el disco antes que sus efectos. las acciones se guardan en el disco antes que sus efectos.

[Comenzar_Trans, T]

[Confirmar, T] [Abortar, T]

[T, g, BFIM, AFIM]

BFIM: BeFore IMagepara deshacer

AFIM: AFter IMagepara rehacer

Page 10: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 10Universitat de València (Esther de Ves, Vicente Cerverón)

Estructuras de datos: trazaEstructuras de datos: traza

La traza es un elemento fundamental La traza es un elemento fundamental para la recuperación, por lo que suele para la recuperación, por lo que suele duplicarse o triplicarse en varios discos duplicarse o triplicarse en varios discos para evitar su perdida.para evitar su perdida.

Ejemplo de traza para una planificación Ejemplo de traza para una planificación P1:P1:

[T1 init][T1,A,2,4][T1,B,2,1][T1 commit] ([pto control])

Valores previos: A=2, B=2P1: T1: lee A, A=A+2,esc(A),lee(B),B=B-1,esc(B),commit

Page 11: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 11Universitat de València (Esther de Ves, Vicente Cerverón)

Estructuras de datos: trazaEstructuras de datos: traza

Puntos de controlPuntos de control (o de sincronismo): (o de sincronismo): periódicamente se escribe en la traza un registro periódicamente se escribe en la traza un registro especial llamado punto de sincronismo, indicando que especial llamado punto de sincronismo, indicando que en ese momento el sistema escribe en el disco todos en ese momento el sistema escribe en el disco todos los los buffersbuffers del SGBD que han sido modificados en la del SGBD que han sido modificados en la base de datos por las transacciones en curso base de datos por las transacciones en curso (y que (y que temporalmente estaban en memoria)temporalmente estaban en memoria). .

El SGBD debe decidir el intervalo entre puntos de El SGBD debe decidir el intervalo entre puntos de sincronismo (medido en tiempo o número de sincronismo (medido en tiempo o número de transacciones).transacciones).

Realizar un punto de control implica:Realizar un punto de control implica:

Suspensión temporal de la ejecución de transacciones.Escritura forzada de todos los buffers modificados a disco.Escribir un registro especial en la traza [punto de control]Reactivar las transacciones en ejecución.

Page 12: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 12Universitat de València (Esther de Ves, Vicente Cerverón)

Reglas básicas de gestión de Reglas básicas de gestión de buffersbuffers

En general (por velocidad) los sistemas traen En general (por velocidad) los sistemas traen los datos a memoria principal y realizan las los datos a memoria principal y realizan las actualizaciones en memoria (no en disco); para actualizaciones en memoria (no en disco); para ello existe un conjunto de ello existe un conjunto de buffersbuffers en la memoria en la memoria principal, llamado principal, llamado caché del SGBDcaché del SGBD..

La función de la gestión de los La función de la gestión de los buffersbuffers es del es del sistema operativo, pero dada su incidencia en el sistema operativo, pero dada su incidencia en el funcionamiento de la BD los SGBD participan en funcionamiento de la BD los SGBD participan en la gestión de la gestión de buffersbuffers con llamadas de bajo nivel con llamadas de bajo nivel al SO.al SO.

En la caché del SGBD hayEn la caché del SGBD hay bloques de datos,bloques de datos, bloques de índices,bloques de índices, bloques de la traza.bloques de la traza.

Page 13: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 13Universitat de València (Esther de Ves, Vicente Cerverón)

Reglas básicas de gestión de Reglas básicas de gestión de buffersbuffers

Cuando el SGBD necesita un determinado Cuando el SGBD necesita un determinado bloque de datos:bloque de datos:

primero revisa la caché del SGBD para ver si está en primero revisa la caché del SGBD para ver si está en ella;ella;

en caso contrario, el elemento se localiza en la BD y en caso contrario, el elemento se localiza en la BD y se copian las paginas de disco apropiadas a la se copian las paginas de disco apropiadas a la caché;caché;

si la caché está llena se hace necesario desalojar si la caché está llena se hace necesario desalojar una página que se pueda desalojar, “evacuándola” una página que se pueda desalojar, “evacuándola” (a (a

disco)disco) si ha sido modificada si ha sido modificada (en el lugar o en la sombra)(en el lugar o en la sombra).. los bits de reserva y de página sucia indican si la los bits de reserva y de página sucia indican si la

página está preparada para ser llevada a disco y si página está preparada para ser llevada a disco y si ha sido modificada.ha sido modificada.

Páginas sucias:Páginas sucias: páginas actualizadas que no páginas actualizadas que no han sido todavía escritas en disco.han sido todavía escritas en disco.

Page 14: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 14Universitat de València (Esther de Ves, Vicente Cerverón)

Reglas básicas de gestión de Reglas básicas de gestión de buffersbuffers Para decidir cuando una página sucia puede/debe ser escrita en Para decidir cuando una página sucia puede/debe ser escrita en

disco se puede seguir:disco se puede seguir: estrategia estrategia no-robarno-robar: una página sucia no puede ser escrita ni : una página sucia no puede ser escrita ni

desalojada antes de que se confirme la transacción que la desalojada antes de que se confirme la transacción que la actualizó.actualizó.

estrategia estrategia robarrobar: una página sucia puede ser escrita y : una página sucia puede ser escrita y desalojada cuando sea necesario independientemente de que desalojada cuando sea necesario independientemente de que la transacción haya llegado a la confirmación.la transacción haya llegado a la confirmación.

estrategia estrategia forzarforzar: toda página sucia se escribe a disco cuando : toda página sucia se escribe a disco cuando se confirma la transacción que la actualizó se confirma la transacción que la actualizó (pequeño sobrecoste de (pequeño sobrecoste de

escr.)escr.).. estrategia estrategia no-forzarno-forzar: no es necesario forzar la escritura : no es necesario forzar la escritura

cuando se confirma, sólo cuando sea necesario por otras cuando se confirma, sólo cuando sea necesario por otras causas.causas.

La mayoría de los SGBDs emplean La mayoría de los SGBDs emplean robar/no-forzarrobar/no-forzar para reducir para reducir las necesidades de memoria y agilizar el funcionamiento sin las necesidades de memoria y agilizar el funcionamiento sin fallos.fallos.

Page 15: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 15Universitat de València (Esther de Ves, Vicente Cerverón)

Reglas básicas de gestión de Reglas básicas de gestión de buffersbuffers

Para garantizar la atomicidad de las Para garantizar la atomicidad de las transacciones:transacciones: Regla de traza por adelantado:Regla de traza por adelantado: la traza que la traza que

contiene información de una actualización contiene información de una actualización debe escribirse en el disco antes de escribir debe escribirse en el disco antes de escribir a disco dicho objeto actualizado de la BD.a disco dicho objeto actualizado de la BD.Se asegura la Se asegura la Atomicidad.Atomicidad.

Regla de confirmación:Regla de confirmación: todos los registros todos los registros de la traza correspondientes a una de la traza correspondientes a una transacción deben escribirse en el disco transacción deben escribirse en el disco antes de que se confirme dicha transacción.antes de que se confirme dicha transacción.Se asegura la Se asegura la DurabilidadDurabilidad.. Evita pérdidas de

imagen posterior AFIM

Evita pérdidas deimagen anterior BFIM

Page 16: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 16Universitat de València (Esther de Ves, Vicente Cerverón)

4. Procedimientos de 4. Procedimientos de recuperaciónrecuperación

Procedimiento de recuperaciónProcedimiento de recuperación:: operaciones necesarias para arrancar la BD operaciones necesarias para arrancar la BD tras finalizar de modo tras finalizar de modo normal o fallonormal o fallo..

Utiliza las estructuras de datos estudiadas: Utiliza las estructuras de datos estudiadas: traza o copia de seguridad, dependiendo del traza o copia de seguridad, dependiendo del tipo de fallo.tipo de fallo.

El objetivo es alcanzar un estado consistente El objetivo es alcanzar un estado consistente de la BD minimizando el trabajo perdido.de la BD minimizando el trabajo perdido.

¿Cómo?¿Cómo?Deshacer actualización:

escribir en BD laimagen anterior desde

la traza

Rehacer actualización:escribir en BD la

imagen posterior desdela traza

Page 17: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 17Universitat de València (Esther de Ves, Vicente Cerverón)

Procedimientos de recuperaciónProcedimientos de recuperación Tipos de procedimientos de recuperaciónTipos de procedimientos de recuperación::

Recuperación normal:Recuperación normal: tras una parada de la BD tras una parada de la BD sin fallos, si el punto de control es el último sin fallos, si el punto de control es el último registro de la traza.registro de la traza.

Recuperación en caliente:Recuperación en caliente: tras un fallo del tras un fallo del sistema, si el último registro de la traza no es un sistema, si el último registro de la traza no es un punto de control.punto de control.

Busca el último Busca el último punto de sincronismo en la punto de sincronismo en la traza.traza.

Localiza las transacciones confirmadas y las Localiza las transacciones confirmadas y las transacciones abortadas (o interrumpidas).transacciones abortadas (o interrumpidas).

Deshace o rehace transacciones según las Deshace o rehace transacciones según las diferentes técnicas.diferentes técnicas.

Recuperación en frío:Recuperación en frío: se usa tras un fallo del se usa tras un fallo del medio que no haya afectado a la traza. Se toma medio que no haya afectado a la traza. Se toma una imagen consistente a partir de una copia de una imagen consistente a partir de una copia de seguridad y se procesa la traza desde el punto de seguridad y se procesa la traza desde el punto de sincronismo asociado a la copia de seguridad.sincronismo asociado a la copia de seguridad.

Page 18: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 18Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmos de recuperaciónAlgoritmos de recuperación

Conceptualmente, podemos distinguir dos Conceptualmente, podemos distinguir dos técnicas principales para recuperarse frente técnicas principales para recuperarse frente a fallos no catastróficos:a fallos no catastróficos: Actualización diferidaActualización diferida Actualización inmediataActualización inmediata

Las técnicas de Las técnicas de actualización diferidaactualización diferida no no actualizan la BD hasta llegar al punto de actualizan la BD hasta llegar al punto de confirmación.confirmación.

En las técnicas de En las técnicas de actualización inmediataactualización inmediata las operaciones de una transacción modifican las operaciones de una transacción modifican la BD antes de que la transacción confirme.la BD antes de que la transacción confirme.

Estudiaremos cuatro algoritmos que se Estudiaremos cuatro algoritmos que se basan en combinar acciones de las técnicas basan en combinar acciones de las técnicas anteriores.anteriores.

Page 19: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 19Universitat de València (Esther de Ves, Vicente Cerverón)

5. Algoritmos de recuperación5. Algoritmos de recuperación Todos estos algoritmos se describen según realizan las Todos estos algoritmos se describen según realizan las

siguientes acciones:siguientes acciones: begin(t)begin(t): introduce la transacción t en el gestor de : introduce la transacción t en el gestor de

transacciones.transacciones. leer(t,p,b)leer(t,p,b): la transacción t lee la página p en el búfer b.: la transacción t lee la página p en el búfer b. esc(t,b,p)esc(t,b,p): la transacción t escribe el búfer b en la página p.: la transacción t escribe el búfer b en la página p. confirma(t)confirma(t): se confirma la transacción t.: se confirma la transacción t. aborta(t)aborta(t): se aborta la transacción t.: se aborta la transacción t. rearranca()rearranca(): realiza la recuperación tras un fallo del sistema.: realiza la recuperación tras un fallo del sistema.

Estos algoritmos mantienen tres listas de transacciones: Estos algoritmos mantienen tres listas de transacciones: tr.activas (tr.activas (LaLa), tr.abortadas (), tr.abortadas (LbLb), tr.confirmadas (), tr.confirmadas (LcLc).).

En todos los algoritmos la acción begin(t) es idéntica:En todos los algoritmos la acción begin(t) es idéntica:

void begin( transac t){

inserta_en_lista(La,t);}

Page 20: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 20Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/rehacerAlgoritmo no deshacer/rehacer Con esta técnica, basada en la Con esta técnica, basada en la

actualización diferidaactualización diferida, nunca es necesario , nunca es necesario deshacer una transacción después de un deshacer una transacción después de un fallo del sistema, porque no han llegado a fallo del sistema, porque no han llegado a tener efecto.tener efecto.

Por ello, no es necesario guardar las Por ello, no es necesario guardar las imágenes anteriores en la traza.imágenes anteriores en la traza.

La escritura en disco de las páginas La escritura en disco de las páginas actualizadas se difiere hasta llegar al punto actualizadas se difiere hasta llegar al punto de confirmación de la transacción.de confirmación de la transacción.

Abortar transacciones es muy barato.Abortar transacciones es muy barato. Sólo es práctico para transacciones cortas y Sólo es práctico para transacciones cortas y

que actualicen poco.que actualicen poco.

Page 21: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 21Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/rehacerAlgoritmo no deshacer/rehacer Si se produce un fallo, las transacciones deben Si se produce un fallo, las transacciones deben

rehacerse.rehacerse. En esta técnica no es necesario guardar el valor En esta técnica no es necesario guardar el valor

anterior (BFIM), ya que nunca se deshace.anterior (BFIM), ya que nunca se deshace. Siempre (en todas las técnicas) hay que escribir la Siempre (en todas las técnicas) hay que escribir la

traza en disco antes de las propias actualizaciones.traza en disco antes de las propias actualizaciones. Durante el proceso de recuperación después de Durante el proceso de recuperación después de

una caída una transacción debe rehacerse si y sólo una caída una transacción debe rehacerse si y sólo si la traza contiene ambas marcas de inicio y de si la traza contiene ambas marcas de inicio y de confirmación de dicha transacción.confirmación de dicha transacción.

En todas las técnicasEn todas las técnicas las operaciones deben ser las operaciones deben ser idempotentesidempotentes, porque puede fallar durante la , porque puede fallar durante la recuperación.recuperación.

Page 22: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 22Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/rehacerAlgoritmo no deshacer/rehacer Si la traza en tres instantes de tiempo al fallar es:Si la traza en tres instantes de tiempo al fallar es:

la recuperación en cada caso es como siguela recuperación en cada caso es como sigue Caso (a): no se debe rehacer ninguna transacciónCaso (a): no se debe rehacer ninguna transacción Caso (b): se debe rehacer T0 (y se ignoran los Caso (b): se debe rehacer T0 (y se ignoran los

registros de T1)registros de T1) Caso (c): se debe rehacer T0 y T1Caso (c): se debe rehacer T0 y T1

Page 23: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 23Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/rehacerAlgoritmo no deshacer/rehacer

void lee( transac t, pagina p, buffer b){ if (esta_actualizada_por(p,t) )

lee_img_post_en_buffer(p,b); else

lee_pagina_en_buffer(p,b);}

void esc( transac t,pagina p, buffer b){

esc_img_post_buffer_traza(p);}

Los algoritmos para las diferentes funciones con esta técnica son:

La gestión de buffers se produce según lo indicado en el apartado correspondiente, trayendo de disco a caché cuando se necesita, sin necesidad de indicarlo explícitamente en los algoritmos.

Page 24: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 24Universitat de València (Esther de Ves, Vicente Cerverón)

void confirma( transac t){ pagina p; //recorre la traza hacia delante for (p=pagina_actualizada(t); p!=NULL; p=pagina_sig(t,p)) escribe_post_imag_traza_en_disco(p); //rehaceinserta_en_lista(Lc,t);elimina_de_lista(La,t);}

void aborta( transac t){ pagina p; buffer b; inserta_en_lista(Lb,t); elimina_de_lista(La_t);}

void rearranque(){ transac t; for (t = La ; t!= NULL; t = t->sig) if( esta_en_lista(Lc,t)

confirma(t); //donde rehace else aborta(t); //pero no necesita deshacer}

Algoritmo no deshacer/rehacerAlgoritmo no deshacer/rehacer

Aborta y confirma

Page 25: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 25Universitat de València (Esther de Ves, Vicente Cerverón)

A=2 4 B=3 6

init lee A

[T1 init][T1,A,4][T1 commit][T2 init][T2,B,6][T2 commit]!FALLO!

esc A A=A+2

init lee B

commit

esc BB=B+3T2

T1

FALLO

Ejemplo:

commit

Guarda imagen posterior

Algoritmo no deshacer/rehacerAlgoritmo no deshacer/rehacer

Page 26: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 26Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo deshacer/no rehacerAlgoritmo deshacer/no rehacer Con esta técnica, basada en la Con esta técnica, basada en la actualización actualización

inmediatainmediata, nunca es necesario rehacer una , nunca es necesario rehacer una transacción después de un fallo del sistema.transacción después de un fallo del sistema.Por ello, no es necesario guardar las Por ello, no es necesario guardar las imágenes posteriores en la traza.imágenes posteriores en la traza.

Las páginas actualizadas se escriben en disco Las páginas actualizadas se escriben en disco cada vez que se actualizan elementos, sin cada vez que se actualizan elementos, sin esperar a la confirmación de la transacción.esperar a la confirmación de la transacción.

Abortar transacciones puede ser caro (hay Abortar transacciones puede ser caro (hay que deshacer las actualizaciones ya escritas que deshacer las actualizaciones ya escritas en disco).en disco).

En la práctica no resulta lo más eficiente.En la práctica no resulta lo más eficiente.

Page 27: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 27Universitat de València (Esther de Ves, Vicente Cerverón)

void esc( transac t,pagina p, buffer b){ inserta_imag_ant_buffer_traza(p); escribe_buffer_en_pagina(p,b);}

void lee( transac t,pagina p, buffer b){ lee_pagina_en_buffer(p,b);}

Algoritmo deshacer/no rehacerAlgoritmo deshacer/no rehacer

Los algoritmos para las diferentes funciones con esta técnica son:

Page 28: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 28Universitat de València (Esther de Ves, Vicente Cerverón)

void confirma( transac t){ pagina p; for (p=pagina_actualizada(t); p!=NULL; p=pagina_sig(t,p)) escribe_en_disco(p); inserta_en_lista(Lc,t); elimina_de_lista(La,t);}void aborta( transac t){ pagina p; buffer b; inserta_en_lista(Lb,t); for(p=pagina_actualizada(t); p!=NULL; P=pagina_sig(t,p)) escribe_en disco_imagen_ant_de_p_desde_traza(); //deshace elimina_de_lista(La,t); }

void rearranque(){ transac t;

for (t = La ; t!= NULL; t = t->sig)aborta(t); //donde deshace

}

Sólo abortatransaccione

s

Algoritmo deshacer/no rehacerAlgoritmo deshacer/no rehacer

Page 29: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 29Universitat de València (Esther de Ves, Vicente Cerverón)

A=2 4 B=3 6

init lee A

[T1 init][T1,A,2][T1 commit][T2 init][T2,B,3]!FALLO!

esc AA=A+2

init lee B

commit

esc BB=B+3T2

T1

FALLO

Ejemplo: Guarda imagen anterior

Algoritmo deshacer/no rehacerAlgoritmo deshacer/no rehacer

Page 30: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 30Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacer Esta técnica, basada en la Esta técnica, basada en la actualización actualización

inmediatainmediata, combina la habilidad de rehacer con la , combina la habilidad de rehacer con la de deshacer.de deshacer.

Las páginas sucias se vuelcan a disco en cualquier Las páginas sucias se vuelcan a disco en cualquier momento que sea necesario, aunque correspondan a momento que sea necesario, aunque correspondan a transacciones no confirmadas transacciones no confirmadas (se ocupa el gestor de (se ocupa el gestor de buffersbuffers))..

Se optimiza el funcionamiento normal Se optimiza el funcionamiento normal (sin abortos ni fallos).(sin abortos ni fallos).

El procedimiento de abortar es más costoso.El procedimiento de abortar es más costoso. El procedimiento de rearranque más costoso.El procedimiento de rearranque más costoso. Es el más comúnmente empleado por los SGBDsEs el más comúnmente empleado por los SGBDs..

Page 31: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 31Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacer Es imprescindible que los registros de la traza Es imprescindible que los registros de la traza

se escriban a disco antes que los datos se escriban a disco antes que los datos actualizados.actualizados.

Procedimientos de recuperación:Procedimientos de recuperación: Con las transacciones que en la traza tengan Con las transacciones que en la traza tengan

registrado el inicio pero no la confirmación, seregistrado el inicio pero no la confirmación, se DeshaceDeshace la transacción, yendo hacia atrás en la la transacción, yendo hacia atrás en la traza desde el último registro de la transacción, traza desde el último registro de la transacción, restaurando las BFIM.restaurando las BFIM.

Con las transacciones que tengan registrados en la Con las transacciones que tengan registrados en la traza el inicio y la confirmación, se traza el inicio y la confirmación, se RehaceRehace la la transacción, yendo hacia delante en la traza, desde transacción, yendo hacia delante en la traza, desde el primer registro de la transacción, estableciendo el primer registro de la transacción, estableciendo las AFIM.las AFIM.

Las operaciones deben ser Las operaciones deben ser idempotentesidempotentes.. Se realizan primero las operaciones de Deshacer Se realizan primero las operaciones de Deshacer

y luego las de Rehacery luego las de Rehacer

Page 32: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 32Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacer

Si la traza en tres instantes de tiempo al fallar es:Si la traza en tres instantes de tiempo al fallar es:

la recuperación en cada caso es como siguela recuperación en cada caso es como sigue Caso (a): se deshace T0, restaurando A=1000 y Caso (a): se deshace T0, restaurando A=1000 y

B=2000B=2000 Caso (b): se deshace T1 y se rehace T0, restaurando Caso (b): se deshace T1 y se rehace T0, restaurando

C=700 y estableciendo A=950 y B=2050C=700 y estableciendo A=950 y B=2050 Caso (c): se rehace T0 y T1, poniendo A=950, Caso (c): se rehace T0 y T1, poniendo A=950,

B=2050, C=600B=2050, C=600

Page 33: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 33Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacerUso de los Puntos de control (Uso de los Puntos de control (checkpointscheckpoints))

Los Los puntos de controlpuntos de control, tanto en , tanto en deshacer/rehacer como en los demás deshacer/rehacer como en los demás algoritmos, evitan tener que recorrer algoritmos, evitan tener que recorrer toda la traza para la recuperación, lo que toda la traza para la recuperación, lo que resultaría muy costoso y realizaría resultaría muy costoso y realizaría acciones innecesarias.acciones innecesarias.

Cuando se realiza (y registra) un punto Cuando se realiza (y registra) un punto de control, se escriben toda la de control, se escriben toda la información a disco y se guarda la información a disco y se guarda la información de las transacciones activas información de las transacciones activas en ese momento. en ese momento. <checkpoint La><checkpoint La>

Page 34: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 34Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacerUso de los Puntos de control (Uso de los Puntos de control (checkpointscheckpoints)) Cuando el sistema se recupera de una caídaCuando el sistema se recupera de una caída

se inicializan se inicializan undo-listundo-list y y redo-listredo-list vacías, vacías, se va recorriendo la traza hacia atrás hasta un punto de se va recorriendo la traza hacia atrás hasta un punto de

control,control, si se encuentra si se encuentra <Ti commit><Ti commit> se incluye Ti en la se incluye Ti en la redo-listredo-list,, si se encuentra si se encuentra <Tj start><Tj start> y Tj no está en la y Tj no está en la redo-listredo-list se se

incluye Tj en la incluye Tj en la undo-listundo-list,, al llegar a un al llegar a un <checkpoint La>,<checkpoint La>, si se encuentra Tk en si se encuentra Tk en LaLa

y Tk no está en la y Tk no está en la redo-listredo-list se incluye en la se incluye en la undo-listundo-list,, se sigue la traza hacia atrás hasta encontrar todos los se sigue la traza hacia atrás hasta encontrar todos los

<Tu start><Tu start> de las Tu que estén la de las Tu que estén la LaLa, deshaciendo los , deshaciendo los pasos de las Tu,pasos de las Tu,

se avanza en la traza hasta el punto de control más se avanza en la traza hasta el punto de control más reciente,reciente,

se sigue avanzando en la traza rehaciendo todas las se sigue avanzando en la traza rehaciendo todas las operaciones registradas correspondientes a las Ti en la operaciones registradas correspondientes a las Ti en la redo-list.redo-list.

Page 35: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 35Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacerUso de los Puntos de control (Uso de los Puntos de control (checkpointscheckpoints)) Ejercicio: deshacer/rehacer con la siguiente traza:

<T0 start>

<T0, A, 0, 10>

<T0 commit>

<T1 start> /* Scan at step 1 comes up to here */

<T1, B, 0, 10>

<T2 start>

<T2, C, 0, 10>

<T2, C, 10, 20>

<checkpoint {T1, T2}>

<T3 start>

<T3, A, 10, 20>

<T3, D, 0, 10>

<T3 commit>

Page 36: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 36Universitat de València (Esther de Ves, Vicente Cerverón)

void esc( transac t,pagina p, buffer b){ inserta_imag_ant_buffer_traza(p); inserta_imag_post_buffer_traza(p);}

void lee( transac t,pagina p, buffer b){ if ( esta_actualizada_por(p,t) )

lee_img_post_en_buffer(p,b); else

lee_pagina_en_buffer(p,b);}

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacer

Los algoritmos para las diferentes funciones con esta técnica son:

Page 37: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 37Universitat de València (Esther de Ves, Vicente Cerverón)

void confirma( transac t){ pagina p; inserta_en_lista(Lc,t); for (p=pagina_actualizada(t); p!=NULL; p=pagina_sig(t,p)) if (esta_sucia(p))

escribe_post_imag_traza_en_disco(p); //rehaceelimina_de_lista(La,t);}void aborta( transac t){ pagina p; bufer b;

inserta_en_lista(Lb,t); for (p=pagina_actualizada(t); p!=NULL; p=pagina_sig(t,p)) lee_en_buffer_img_ant_de_p_desde_traza(p,b); //deshace

elimina_de_lista(La_t);}

void rearranque(){ transac t; for (t = La ; t!= NULL; t = t->sig) if( esta_en_lista(Lc,t)

confirma(t); else aborta(t);}

Aborta y confirma

Alg

ori

tmo d

esh

acer-

reh

acer

Page 38: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 38Universitat de València (Esther de Ves, Vicente Cerverón)

A=2 4 B=3 6

init lee A

[T1 init][T1,A,2,4][T1 commit][T2 init][T2,B,3,6][T2 commit]!FALLO!

esc A A=A+2

init lee B

commit

esc BB=B+3T2

T1

FALLO

Ejemplo:

commit

Guarda imagen posterior y anterior

Algoritmo deshacer/rehacerAlgoritmo deshacer/rehacer

Page 39: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 39Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/no Algoritmo no deshacer/no rehacerrehacer

Existen dos técnicas básicas de Existen dos técnicas básicas de actualización:actualización: actualización en el sitio, en la cual cuando actualización en el sitio, en la cual cuando

es necesario escribir en disco se es necesario escribir en disco se sobreescriben los objetos de la BD en su sobreescriben los objetos de la BD en su posición original. Se utiliza en todos los posición original. Se utiliza en todos los algoritmos de recuperación vistos algoritmos de recuperación vistos anteriormente.anteriormente.

El sombreado (El sombreado (paginación en la sombrapaginación en la sombra) ) escribe las páginas actualizadas en una escribe las páginas actualizadas en una nueva posición, y mantiene nueva posición, y mantiene (provisionalmente) las páginas originales (provisionalmente) las páginas originales en su ubicación original. La nueva página en su ubicación original. La nueva página sólo es visible cuando la transacción se sólo es visible cuando la transacción se confirma. Esta técnica permite los confirma. Esta técnica permite los algoritmos no deshacer/no rehacer.algoritmos no deshacer/no rehacer.

Page 40: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 40Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/no Algoritmo no deshacer/no rehacerrehacer

La paginación en la sombra es una alternativa a la La paginación en la sombra es una alternativa a la recuperación basada en la traza (recuperación basada en la traza (si no hay concurrencia si no hay concurrencia de transacciones ni siquiera se necesita trazade transacciones ni siquiera se necesita traza).).

En ejecuciones serializadasEn ejecuciones serializadas Se mantienen dos tablas de páginas, la tabla de páginas Se mantienen dos tablas de páginas, la tabla de páginas

actual y la tabla de páginas en la sombra.actual y la tabla de páginas en la sombra. Cuando se inicia una transacción se copia la tabla de Cuando se inicia una transacción se copia la tabla de

páginas actual en la tabla “sombra”.páginas actual en la tabla “sombra”. Cuando se actualiza una página, se escribe la página Cuando se actualiza una página, se escribe la página

actualizada en una página no usada, y se actualiza la tabla actualizada en una página no usada, y se actualiza la tabla actual para apuntar a ésta (dejando la “sombra” sin actual para apuntar a ésta (dejando la “sombra” sin modificar)modificar)

Cuando se confirma la transacción, se descarta la tabla Cuando se confirma la transacción, se descarta la tabla “sombra”.“sombra”.

Si se produce un fallo, la tabla “sombra” se copia en la Si se produce un fallo, la tabla “sombra” se copia en la “actual”.“actual”. No es necesario ni rehacer ni deshacerNo es necesario ni rehacer ni deshacer

Page 41: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 41Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/no rehacerAlgoritmo no deshacer/no rehacerpaginación en la sombrapaginación en la sombra

Page 42: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 42Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo no deshacer/no Algoritmo no deshacer/no rehacerrehacer

InconvenientesInconvenientes Se debe guardar y copia la tabla de páginas Se debe guardar y copia la tabla de páginas

entera.entera. En cualquier caso hay que gestionar la En cualquier caso hay que gestionar la

“recolección de basura” de páginas “obsoletas” “recolección de basura” de páginas “obsoletas” después de la confirmación de una transacción.después de la confirmación de una transacción.

Los datos de la BD quedan fragmentados.Los datos de la BD quedan fragmentados. En caso de ejecuciones concurrentes, hay que En caso de ejecuciones concurrentes, hay que

guardar y utilizar información en la traza y la guardar y utilizar información en la traza y la recuperación se complica mucho respecto a las recuperación se complica mucho respecto a las planificaciones serializadas.planificaciones serializadas.

En conjunto, la técnica supone un sobrecoste En conjunto, la técnica supone un sobrecoste de operaciones que la hace ineficiente en la de operaciones que la hace ineficiente en la práctica.práctica.

Page 43: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 43Universitat de València (Esther de Ves, Vicente Cerverón)

void confirma( transac t){ pagina p;

for (p=pagina_actualizada(t); p!=NULL; p=pagina_sig(t,p)) if (esta_sucia(p))

escribe_post_imag_traza_en_disco(p);elimina_de_lista(La,t);

}

void rearranque(){ transac t;

for (t = La ; t!= NULL; t = t->sig)aborta(t);

}

Algoritmo no deshacer/no Algoritmo no deshacer/no rehacerrehacer

Los algoritmos específicos con esta técnica son:

Page 44: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 44Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo de recuperación ARIESAlgoritmo de recuperación ARIES Se trata de un método de recuperación “real” Se trata de un método de recuperación “real”

empleado (con diversas optimizaciones) en la empleado (con diversas optimizaciones) en la mayoría de los SGBD actuales.mayoría de los SGBD actuales.

ARIES utiliza una estrategia robar/no forzar ARIES utiliza una estrategia robar/no forzar para las escrituras en disco.para las escrituras en disco.

El algoritmo se basa en tres conceptos:El algoritmo se basa en tres conceptos: escritura anticipada en la traza.escritura anticipada en la traza. repetición de la historia (para reconstruir el repetición de la historia (para reconstruir el

estado de la BD en el momento de la caída, con estado de la BD en el momento de la caída, con rehacer y deshacer).rehacer y deshacer).

anotación en el diario de las modificaciones anotación en el diario de las modificaciones durante el deshacer (para evitar repeticiones de durante el deshacer (para evitar repeticiones de deshacer si se produce un fallo durante la deshacer si se produce un fallo durante la recuperación).recuperación).

Page 45: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 45Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo de recuperación ARIESAlgoritmo de recuperación ARIES

El procedimiento de recuperación El procedimiento de recuperación consiste en tres pasos principales:consiste en tres pasos principales: AnálisisAnálisis

RehacerRehacer

DeshacerDeshacer

Identifica las páginas sucias y el conjunto de transacciones activas en el momento de la caída y el punto de la traza apropiado para empezar la operación REHACER

En la fase REHACER se replican las operaciones de la traza, si bien sólo se aplican las operaciones necesarias.

Se recorre la traza hacia atrás y se deshacen lastransacciones activas en el momento de la caída, o iniciadasdespués, de las que no se ha encontrado confirmación.

Page 46: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 46Universitat de València (Esther de Ves, Vicente Cerverón)

Algoritmo de recuperación ARIESAlgoritmo de recuperación ARIES

ARIES utiliza diferentes estructuras de ARIES utiliza diferentes estructuras de datos:datos:

mantiene un Número Secuencial de mantiene un Número Secuencial de Diario (NSD) incremental para Diario (NSD) incremental para identificar cada entrada del diario;identificar cada entrada del diario;

en la traza se guarda información en la traza se guarda información adicional,adicional,

el algoritmo emplea una tabla de el algoritmo emplea una tabla de transacciones y una tabla de páginas transacciones y una tabla de páginas sucias, que mantiene el gestor de sucias, que mantiene el gestor de transacciones,transacciones, cuando se produce una caída, estas tablas cuando se produce una caída, estas tablas

se recrean en la fase de análisis.se recrean en la fase de análisis.

Page 47: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 47Universitat de València (Esther de Ves, Vicente Cerverón)

Entradas de la traza para ARIES:Entradas de la traza para ARIES:

Se escribe un registro para las siguientes Se escribe un registro para las siguientes acciones:acciones: EscribirEscribir ConfirmarConfirmar AbortarAbortar DeshacerDeshacer FinalizarFinalizar

NSDNSD ÚLTIMO_NSDÚLTIMO_NSD ID_TRANID_TRAN TIPOTIPO ID_PAGID_PAG OTRA_INFOTRA_INF

Número secuencial

último NSD donde id_tmodificó

Identificadorde transacción

Tipo de operación

Identificadorde página

entre otras:imagen anteriorimagen posterior

Page 48: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 48Universitat de València (Esther de Ves, Vicente Cerverón)

Durante la recuperación:Durante la recuperación: Tabla de transaccionesTabla de transacciones Tabla de páginas suciasTabla de páginas sucias

Entradas de tabla de transacciones:Entradas de tabla de transacciones:

Entradas de la tabla de páginas sucias:Entradas de la tabla de páginas sucias:

ID_TRANSACCIÓNID_TRANSACCIÓN ÚLTIMO NSDÚLTIMO NSD ESTADOESTADO

ID_PÁGINAID_PÁGINA NSDNSD

Se construyen durante el análisis

Page 49: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 49Universitat de València (Esther de Ves, Vicente Cerverón)

Los puntos de control implican las Los puntos de control implican las siguientes operaciones:siguientes operaciones: Escribir en la traza un Escribir en la traza un registro de inicio de registro de inicio de

punto de controlpunto de control.. Escribir en la traza un Escribir en la traza un registro de fin de registro de fin de

punto de control (se añaden también en la punto de control (se añaden también en la traza los contenidos de la tablatraza los contenidos de la tabla de de transacciones y de páginas sucias)transacciones y de páginas sucias)

Escribir elEscribir el NSD NSD del registro de inicio de del registro de inicio de pto. de control pto. de control en un fichero especial.en un fichero especial.

Page 50: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 50Universitat de València (Esther de Ves, Vicente Cerverón)

Recuperación ARIES. Fase de análisis:Recuperación ARIES. Fase de análisis: Se accede al fichero especial para localizar el Se accede al fichero especial para localizar el

último punto de control adecuado.último punto de control adecuado. Comienza la fase de análisis desde dicho Comienza la fase de análisis desde dicho

punto de control; la tabla de transacciones punto de control; la tabla de transacciones activas y la tabla de páginas sucias se activas y la tabla de páginas sucias se “recrean” mediante la traza.“recrean” mediante la traza. Si se alcanza un fin de transacción, dicha Si se alcanza un fin de transacción, dicha

transacción deja de estar entre las activas.transacción deja de estar entre las activas. Si se encuentra en la traza una entrada Si se encuentra en la traza una entrada

correspondiente a una transacción, se modifica la correspondiente a una transacción, se modifica la tabla de transacciones cambiando el tabla de transacciones cambiando el ÚLTIMO_NSD para esa transacción, incluyéndola ÚLTIMO_NSD para esa transacción, incluyéndola si no estaba.si no estaba.

Si el registro de la traza es un cambio de una Si el registro de la traza es un cambio de una página P y ésta no estaba en la tabla de páginas página P y ésta no estaba en la tabla de páginas sucias, se crea una nueva entrada en la tabla de sucias, se crea una nueva entrada en la tabla de páginas sucias.páginas sucias.

Page 51: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 51Universitat de València (Esther de Ves, Vicente Cerverón)

Recuperación ARIES. Fase REHACER:Recuperación ARIES. Fase REHACER: Para reducir el trabajo innecesario, se Para reducir el trabajo innecesario, se

empieza desde un punto donde se sabe que empieza desde un punto donde se sabe que los cambios previos a las páginas sucias ya los cambios previos a las páginas sucias ya están aplicados a la BD en disco.están aplicados a la BD en disco.

Para ello se localiza el NSD más pequeño Para ello se localiza el NSD más pequeño (M) de la tabla de páginas sucias (todo lo (M) de la tabla de páginas sucias (todo lo anterior ya está escrito en disco).anterior ya está escrito en disco).

Se empieza en ese registro M de la traza y Se empieza en ese registro M de la traza y se avanza, rehaciendo sólo lo que sea se avanza, rehaciendo sólo lo que sea necesario:necesario: si un cambio de una página P no está en la tabla si un cambio de una página P no está en la tabla

de páginas sucias no tiene que ser rehecho;de páginas sucias no tiene que ser rehecho; si para un cambio de una página P con un NSD si para un cambio de una página P con un NSD

N dado dicha página tiene una entrada en la N dado dicha página tiene una entrada en la tabla de páginas NSD(P)>N entonces ese tabla de páginas NSD(P)>N entonces ese cambio ya ha sido aplicado.cambio ya ha sido aplicado.

Page 52: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 52Universitat de València (Esther de Ves, Vicente Cerverón)

Recuperación ARIES. Fase Recuperación ARIES. Fase DESHACER:DESHACER:

Una vez finalizada la fase REHACER, la Una vez finalizada la fase REHACER, la BD está en el estado del momento de la BD está en el estado del momento de la caída.caída.

Teniendo en cuenta la tabla de Teniendo en cuenta la tabla de transacciones activas y no confirmadas transacciones activas y no confirmadas (la (la undo-listundo-list) continúa hacia atrás desde ) continúa hacia atrás desde el final de la traza deshaciendo las el final de la traza deshaciendo las operaciones de esas transacciones hasta operaciones de esas transacciones hasta llegar al principio de cada una de ellasllegar al principio de cada una de ellas

Último pto. de control

Traza

Tiempo

Fin de la traza

Fase de análisisREHACER

DESHACER

Page 53: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 53Universitat de València (Esther de Ves, Vicente Cerverón)

Ejemplo de recuperación ARIES:Ejemplo de recuperación ARIES:

NSDNSD ÚLTIMO_NSDÚLTIMO_NSD ID_TRANID_TRAN TIPOTIPO ID_PAGID_PAG OTRA_INFOTRA_INF

11 00 T1T1 ActAct CC ........

22 00 T2T2 ActAct BB ........

33 11 T1T1 ConfConf ........

44 ini_controlini_control

55 fin_controlfin_control InfoTablasInfoTablas

66 00 T3T3 ActAct AA ........

77 22 T2T2 ActAct CC ........

88 77 T2T2 ConfConf ........

T1T1 33 ConfConf

T2T2 22 en progen prog

ID_TRANID_TRAN ÚLTIMO_NSDÚLTIMO_NSD TIPOTIPO ID_PAGID_PAG NSDNSD

CC 11

BB 22

Trazadisponibl

e

Tablas guardadas en el pto. de control

En una planificación con tres transacciones recién iniciadas

{T1: update(C), T2: update(B); T1: commit, pto.control, T3: update(A), T2: update(C), T2: commit, FALLO }

¿Cómo sería el funcionamiento normal y la recuperación?

Page 54: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 54Universitat de València (Esther de Ves, Vicente Cerverón)

Ejemplo de recuperación ARIES:Ejemplo de recuperación ARIES:

ID_TRANID_TRAN ÚLTIMO_NSDÚLTIMO_NSD TIPOTIPO

T1T1 33 ConfConf

T2T2 88 ConfConf

T3T3 66 en progen prog

ID_PAGID_PAG NSDNSD

CC 11

BB 22

AA 66

En la fase de ANÁLISIS partimos de las tablas guardadas en el punto de control y las

recreamos.Tablas

reconstruidas en la fase de análisis

En la fase REHACER, empezando desde el mínimo NSD en la tabla de páginas sucias (min(NSD)=1)) se rehacen las actualizaciones de la traza (en este caso NSD=1, 2, 6, 7)

En la fase DESHACER, se deshacen las actualizaciones de la traza de las transacciones no confirmadas (T3) (i.e. NSD=6)

Page 55: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 55Universitat de València (Esther de Ves, Vicente Cerverón)

Soporte para la recuperación del Soporte para la recuperación del mediomedio

La información necesaria para la recuperación en frío se La información necesaria para la recuperación en frío se encuentra en la copia de seguridad, el último punto de encuentra en la copia de seguridad, el último punto de sincronismo y las imágenes posteriores de la traza.sincronismo y las imágenes posteriores de la traza.

Por lo tanto, aquellos algoritmos que no soportan el Por lo tanto, aquellos algoritmos que no soportan el procedimiento de rehacer en la recuperación en procedimiento de rehacer en la recuperación en caliente, deben hacerlo en la recuperación en frío.caliente, deben hacerlo en la recuperación en frío.

La base de datos completa y la traza se guardan La base de datos completa y la traza se guardan periódicamente en un medio de almacenamiento más periódicamente en un medio de almacenamiento más económico como las cintas.económico como las cintas.

Ante un fallo catastrófico, se recupera en frío “desde la Ante un fallo catastrófico, se recupera en frío “desde la cinta”.cinta”.

La traza se respalda con más frecuencia que la BD La traza se respalda con más frecuencia que la BD completa.completa.

Page 56: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 56Universitat de València (Esther de Ves, Vicente Cerverón)

BibliografíaBibliografía

Ramez A. Elmasri, Shamkant B. Navathe, Ramez A. Elmasri, Shamkant B. Navathe, ““Fundamentos de Sistemas de Bases de Fundamentos de Sistemas de Bases de DatosDatos”. Addison Wesley (tercera edición, ”. Addison Wesley (tercera edición, capítulo 21)capítulo 21)

Silberschatz, A.; Korth, H.F.; Sudarshan, Silberschatz, A.; Korth, H.F.; Sudarshan, S. “S. “Fundamentos de Bases de DatosFundamentos de Bases de Datos”. ”. McGraw Hill (capítulo 17)McGraw Hill (capítulo 17)

R. Ramakrishnan, J. Gehrke “R. Ramakrishnan, J. Gehrke “Database Database Management SystemsManagement Systems”. McGraw Hill ”. McGraw Hill (cap.18)(cap.18)

Page 57: Técnicas de recuperación de Bases de Datos BD II: Tema 5 Universitat de València profesores Esther de Ves y Vicente Cerverón

BD2 - Tema 5 57Universitat de València (Esther de Ves, Vicente Cerverón)

Cuestiones y ejerciciosCuestiones y ejercicios Dada la siguiente planificación, donde se indica el Dada la siguiente planificación, donde se indica el

punto de fallo, simular el comportamiento (normal y punto de fallo, simular el comportamiento (normal y recuperación) de diferentes algoritmos de recuperación) de diferentes algoritmos de recuperaciónrecuperación T1 init, T1 lee X, T1 esc X, T2 init, T2 lee Y, T2 esc Y, T1 lee T1 init, T1 lee X, T1 esc X, T2 init, T2 lee Y, T2 esc Y, T1 lee

Z, T1 esc Z, T1 commit , T2 lee Z, T2 esc Z, T3 init, T3 lee Z, T1 esc Z, T1 commit , T2 lee Z, T2 esc Z, T3 init, T3 lee R, R, T3 esc R, T3 lee X, pto. control, T3 esc X, T4 init, T2 fin, T3 esc R, T3 lee X, pto. control, T3 esc X, T4 init, T2 fin, T4 lee Z, T4 esc Z, T4 lee W, T4 esc W, T5 init, T5 lee U, T4 lee Z, T4 esc Z, T4 lee W, T4 esc W, T5 init, T5 lee U, T5 esc U, T5 commit, FALLOT5 esc U, T5 commit, FALLO

Estudiad primero cuál sería el comportamiento de las Estudiad primero cuál sería el comportamiento de las diferentes técnicas de control de concurrencia con esta diferentes técnicas de control de concurrencia con esta planificación.planificación.

Para ARIES, asumid que la caché sólo tiene espacio para 5 Para ARIES, asumid que la caché sólo tiene espacio para 5 páginas.páginas.

Estudiad diferentes comportamientos si el fallo se Estudiad diferentes comportamientos si el fallo se produjese en otros momentos.produjese en otros momentos.