Administración de Bases de Datos

Slides:



Advertisements
Presentaciones similares
Transacciones y Concurrencia en Oracle
Advertisements

Organización Secuencial
IBD Clase 18.
IBD Clase 17.
Arquitecturas de BD Modelo ANSI/SPARC
Introducción a LAS Bases de Datos
Copia de seguridad de bases de datos
Confiabilidad de BDD Sistemas de Bases de Datos Distribuidas - UCV
Confiabilidad en Bases de Datos Distribuidas
Sistemas Distribuidos y Paralelos
RESPALDO.
Modelo de procesos de dos estados
ARQUITECTURA DE ORACLE
SISTEMAS OPERATIVOS UNIDAD 1..
Introducción a los Sistemas de Bases de Datos Distribuidos
UNITA - IBARRA Backup ORACLE
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
1.1.2 Sistemas de información para la gestión y para la ayuda en la toma de decisiones. Los SI contribuyen activamente a la consecución de los objetivos.
BASES DE DATOS DISTRIBUIDAS
Transacción Es una unidad de trabajo sobre la base de datos
Introducción a los Conceptos de Bases de Datos Docente: Ing. Marleny Soria Medina.
Manejo de Transacciones
Transacciones (MySQL). Definición: Conjunto de sentencias que se tratan como una sola. Comienzan con BEGIN/START TRANSACTION; Se puede confirmar (COMMIT)
HERRAMIENTAS DEL SISTEMA
TRADUCTOR DE UN PROGRAMA
Transacciones, Recuperación y Control de Concurrencia
Motores de almacenamiento en MySQL por Mario López y Juan A. Sánchez.
Administración de Bases de Datos
PARTE I  ANDRI GIOVANNI HERNANDEZ CAMPOSECO. ANDRI GIOVANNI HERNANDEZ CAMPOSECO Check point video: Dead Lock:
Universidad del Cauca – FIET – Departamento de Sistemas
Técnicas de recuperación de bases de datos
Unidad III Administración de procesos
Administración de Bases de Datos
6. Recuperación de fallos
Estructura del sistema de Archivos de
PostgreSQL: Parte 1 Integrantes: Álvaro Marciales Claudio Torrez.
T ABLESPACES EN O RACLE JULIÁN JOSÉ TORRES ZABALA PEDRO JAVIER SILVA CRISTIAN CAMILO RAMIREZ JULIAN ARJONA UNIVERSIDAD DEL TOLIMA INGENERIA DE SISTEMAS.
Tecnologías de Información y Comunicación II CLASE 6.
Introducción a los Sistemas Operativos
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Gestión de procesos Sistemas Operativos Edwin Morales
Control de Transacciones.
Elaborado por: Guillermo Baquerizo I Término
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Manipulación de Datos Conceptos básicos.
CONCEPTO SOBRE TRANSACCIONES
Transacciones en sistemas de base de datos
TRANSACCIONES DISEÑO DE BASE DE DATOS.
Universidad Tecnológica de Izúcar de Matamoros
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Supongamos que un usuario desea escribir un informe e imprimirlo en una impresora conectada. Para realizar esta tarea, se precisa una aplicación de procesamiento.
SISTEMAS DE ARCHIVOS.
Estructura de los Sistemas Operativos
VENTAJAS DE LAS BASES DE DATOS.  Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie.
C ONCURRENCIA Y M ANEJO DE S ESIONES. C ONCURRENCIA Es una propiedad del sistema en el cual muchos calculos se estan ejecutando simultaneamente, y son.
UNIVERSIDAD LATINA III. MANTENIMIENTO Y GESTIÓN DE LA INFORMACIÓN DE UNA BASE DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
Teoría de Sistemas Operativos Sistemas distribuidos.
1 FUNDAMENTOS DE BASES DE DATOS SISTEMA GESTOR DE BASES DE DATOS (SGBD) Consiste en una colección de datos interrelacionados y un conjunto de programas.
Protocolos de Sondeo SNOOPY
ORACLE 9i DATABASE  Diseñada para soportar las capacidades de Internet  Evolución: desde BD relacionales con SQL ad hoc, hasta la era Internet  Diseñado.
BASE DE DATOS.
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
MIA - Grupo 5 Unidad 2.
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
Bases de datos ITecnológico San Agustín1 BASES DE DATOS Conceptos Básicos Paulo César Acosta Lozano –
Bases de datos I1 BASES DE DATOS Clase 2 Conceptos Básicos Gloria Lucía Giraldo Gómez Universidad Nacional de Colombia Bloque.
1 Tema 16: Servidores de Archivos y otros Conceptos Sistemas Operativos (Tema 18 en apuntes prof. Rovayo)
TEMA 6 Copias de seguridad y Restauración Msc. Rina Arauz.
Transcripción de la presentación:

Administración de Bases de Datos Recuperación Objetivos Apreciar la necesidad de proteger la información frente a fallos del sistema Identificar los tipos de fallos que pueden ocurrir en un SGBD Comprender el propósito de los diarios (log) y los puntos de validación del sistema Conocer y entender diferentes técnicas del SGBD para recuperarse frente a fallos

Administración de Bases de Datos Recuperación Contenidos Aspectos generales sobre recuperación Tipos de fallos El proceso de recuperación Técnicas de recuperación Anexo: Mecanismos de recuperación en Oracle

Administración de Bases de Datos Aspectos generales sobre recuperación Los SGBD deben asegurar la disponibilidad de los datos Por lo que proporcionan mecanismos que permiten recuperar la BD frente a fallos lógicos o físicos que destruyen todos o partes de los datos Mecanismo de recuperación del SGBD: Responsable de la restauración de la BD al estado consistente previo al fallo También debe proporcionar alta disponibilidad, minimizando el tiempo de la incidencia

Administración de Bases de Datos Aspectos generales sobre recuperación Transacción T: Añadir a la BDs la empleada (14, Julia, 30) EMPLEADO DEPARTAMENTO codEmp nomEmp dept 1 German 10 12 Antonio 20 7 Cristina 30 22 Eva 5 Rubén ... Dept nomDep Ciudad numEmp 20 Producción Murcia 2 10 Dirección Sevilla 30 Sistemas Barcelona 1 ...

Administración de Bases de Datos Aspectos generales sobre recuperación El código de T podría ser: (0) EXEC SQL BEGIN TRANSACTION; ... EXEC SQL WHENEVER SQLERROR ROLLBACK; EXEC SQL INSERT INTO empleado VALUES (14, Julia, 30); EXEC SQL UPDATE departamento SET numEmp=numEmp+1 WHERE dept=30; EXEC SQL COMMIT; Única transacción con varias operaciones/sentencias SQL ¿Cuál es el estado de la BD entre las sentencias 2 y 3?

Administración de Bases de Datos Aspectos generales sobre recuperación Idea básica: atomicidad y durabilidad de toda transacción Secuencia de operaciones que llevan a la BD de un estado consistente a otro estado consistente Debe garantizarse frente a todo tipo de fallos posible El SGBD debe asegurar que toda transacción T ... Ejecuta todas las operaciones con éxito y su efecto quede permanentemente en la BD, o bien, No tenga ningún efecto sobre la BD ni otras transacciones Nunca deben ejecutarse sólo algunas operaciones de T Ni tan siquiera por culpa de un “fallo” en mitad de T

Administración de Bases de Datos Aspectos generales sobre recuperación Recuperación: Restablecer la información a un estado consistente, tras un fallo del sistema que ha dejado la BD en un estado inconsistente o sospechoso de serlo El principio básico de la recuperación de BD: Redundancia Física El SGBD vela porque: No se pierda ninguna transacción Ninguna transacción quede a medio ejecutarse (integridad) Ninguna transacción se realice más de una vez

Administración de Bases de Datos Aspectos generales sobre recuperación Para realizar su labor, el subsistema de recuperación debe monitorizar las transacciones: Cuando se inicia Cuando se termina Cuando se confirma Cuando aborta El gestor de la recuperación monitoriza las siguientes transacciones: BEGIN_TRANSACTION READ o WRITE END_TRANSACTION COMMINT_TRANSACTION ROLLBACK ABORT

Administración de Bases de Datos Estados y operaciones de una transacción protocolos de recuperación commit leer/escribir inicio activa fin Parcialmente confirmada confirmar confirmada abortar abortar fallida terminada rollback

Administración de Bases de Datos Tipos de Fallos Fallo por imposición del control de concurrencia Violación de la seriabilización, bloqueo mortal, ... Fallo en la transacción Overflow, división por cero, violaciones de restricciones, ... Fallos locales (sólo afectan a la transacción fallida) Fallo software SGBD, SO, comunicaciones, ... Fallos globales Fallo hardware Fallos en discos, máquinas, redes, ... Fallos catastróficos Corte de suministro eléctrico, robo, incendio, inundación, sabotaje, borrado/sobreescritura accidental, etc.

Administración de Bases de Datos Fallos Los fallos pueden afectar a las transacciones es sus propiedades ACID: Atomicity Consistency Isolation Durability Solución: Mecanismos de control de concurrencia Mecanismos de recuperación

Administración de Bases de Datos Fallos Vamos a tratar principalmente: Fallos que provocan la pérdida de la memoria volátil (memoria principal) Fallos que provocan la pérdida de la memoria estable (memoria secundaria)

Administración de Bases de Datos Diario Cuando ocurre un fallo, ¿cómo restaurar la base de datos a un estado consistente? Redundancia: diario (log, journal, registro histórico,...) Monitorizar la ejecución de las transacciones: cuando se inicia, confirma, aborta, acaba, qué operaciones realiza sobre qué datos Se obliga a que los datos que se modifican se escriban en disco antes en el diario que en la BD (log write-ahead protocol) Particiones de disco (o discos) distintos Copia de seguridad periódica Técnica de recuperación Acciones que permitan restablecer el contenido de la BD a un estado que asegure: consistency, atomicity, durability

Administración de Bases de Datos Diario Entradas del fichero: [START_TRANSACTION, T, time] Indica que la transacción T ha comenzado la ejecución [COMMIT, T, time] Indica que T finalizó con éxito y su efecto puede ser confirmado en la BD en disco: los cambios pueden quedar permanentes en la BD. [ROLLBACK, T, time] Indica que la transacción ha sido anulada de forma que ninguna de sus operaciones tendrá efecto sobre la BD [READ, T, X, VALUE, time] Indica que T leyó el valor del elemento X de la BD [WRITE, T, X, OLDVALUE, NEWVALUE, time] Indica que T ha modificado el valor del elemento X

Administración de Bases de Datos Diario Operaciones: REDO(T), rehacer: se escriben los NEWVALUE de T en la BD UNDO(T), deshacer: se escriben los OLDVALUE de T en la BD Recuperar un fallo de T consistirá en deshacer (UNDO) o rehacer (REDO) algunas de las operaciones, a partir del contenido del diario Actualizaciones del diario Inmediatas Diferidas

Administración de Bases de Datos Pérdida de memoria Área de trabajo privada de cada transacción Buffer local Buffer Global BD input/output Bloques read/write Datos

Administración de Bases de Datos COMMIT Cuando T realiza un COMMIT significa que: Todas las operaciones se ejecutaron con éxito El efecto de dichas operaciones se anotó en la bitácora, incluyendo el COMMIT! T ha llegado a un punto de confirmación y se puede suponer que: T está confirmada Sus cambios son permanentes en la BD Bloqueos liberados, buffers liberados, etc. ... [START ...] [WRITE ...] [READ ...] [COMMIT ...] BD ok BD ok T UPDATE... SELECT... INSERT... COMMIT...

Administración de Bases de Datos ROLLBACK Cuando T realiza un ROLLBACK significa que: T ha resultado fallida, y sus operaciones no deben tener efecto El efecto de dichas operaciones se anotó en la bitácora, incluyendo el ROLLBACK! T ha llegado a un punto de confirmación y se puede suponer que: T está cancelada Sus operaciones han sido anuladas en la BD Bloqueos liberados, buffers liberados, etc. ... [START ...] [WRITE ...] [READ ...] [ROLLBACK ...] BD ok T UPDATE... SELECT... INSERT... ROLLBACK...

Administración de Bases de Datos Proceso de recuperación Si el fallo ocurre cuando T está en ejecución, entonces se debe deshacer (UNDO), pues no alcanzó su punto de confirmación (no anotó COMMIT) Si el fallo ocurre cuando T ha sido confirmada, entonces se debe rehacer (REDO), pues no es seguro que todos los cambios hayan sido llevados a la BD en disco T UPDATE... SELECT... INSERT... T UPDATE... SELECT... INSERT... COMMIT...

Administración de Bases de Datos Proceso de recuperación UNDO T implica deshacer cada una de las operaciones a partir de las anotaciones en bitácora, empezando por la última (orden inverso!) UNDO [WRITE, T, X, OldValue, NewValue, time] => X=OldValue en BD REDO T implica rehacer cada una de las operaciones, a partir de las anotaciones en el diario, empezando por la primera (mismo orden) REDO [WRITE, T, X, OldValue, NewValue, time] => X=NewValue en BD

Administración de Bases de Datos Diario adelantado (a la BD) Escritura inmediata en el diario El diario es un fichero almacenado en disco, por lo que para insertar una nueva entrada es necesario: Copiar el bloque adecuado del fichero en memoria principal Actualizar el bloque en memoria, insertando la nueva entrada Copiar el bloque desde memoria al disco Una escritura de bloque en disco por cada nueva entrada! Escritura diferida en el diario El buffer del diario contiene un bloque del diario hasta que se llena de entradas, momento en el que se escribe en el disco Copiar el bloque desde memoria a disco Una única escritura por bloque!

Administración de Bases de Datos Diario adelantado (a la BD) Cuando ocurre un fallo. Algunas entradas pueden no haber sido llevadas al diario en disco Con el fallo, se pierde el contenido de la memoria principal Entradas del diario en el buffer (bloque incompleto) Dichas entradas no serán consideradas en el proceso de recuperación! El subsistema de recuperación del SGBD sólo consulta el diario! Es necesario segur un protocolo de escritura anticipada del diario: diario adelantado

Administración de Bases de Datos Diario adelantado (a la BD) No se pueden grabar en la BD los cambios realizados por T hasta que se haya escrito en disco toda entrada del diario para T (primero diario, luego BD) El COMMIT de T no se puede completar hasta que se haya escrito en disco cualquier entrada de diario para T pendiente de escribir (localizada en el buffer) Se fuerza la escritura en disco de las entradas del buffer de diario para T, antes de consolidar los cambios hechos por T Escrituras de bloque por transacción!

Administración de Bases de Datos Diario adelantado (a la BD) Nunca puede ocurrir ... Pero sí puede suceder ... ESCRITURA BD ESCRITURA DIARIO T UPDATE... SELECT... INSERT... COMMIT... T UPDATE... SELECT... INSERT... COMMIT... ESCRITURA DIARIO ESCRITURA BD T UPDATE... SELECT... INSERT... COMMIT... ESCRITURA DIARIO ESCRITURA BD

Administración de Bases de Datos Puntos de validación (checkpoint) Dado un fallo ... ¿Cómo sabe el SGBD qué transacciones deben deshacerse? Examinar TODO el diario buscando aquellas Ti sin COMMIT? ¿y cuáles debe rehacer? Examinar TODO el diario buscando las Ti con COMMIT? T1 UPDATE... SELECT... INSERT... T2 COMMIT... T3

Administración de Bases de Datos Puntos de validación (checkpoint) El SGBD marca automáticamente un punto de validación: Cada cierto tiempo Tras escribir N entradas en el diario Cada vez que se graba un bloque de buffer a disco Es otro tipo de entrada del diario [CHECKPOINT ...] Contiene la lista de identificadores de transacciones activas Dirección en el diario de la primera y última entradas de cada transacción activa

Administración de Bases de Datos Puntos de validación (checkpoint) Marcar un punto de validación significa ... Suspender la ejecución de todas las transacciones Forzar la escritura en disco del buffer del diario Forzar la escritura en disco de todo bloque del buffer global Escribir en el buffer del diario el registro de validación y forzar su escritura en disco Escribir en otro diario, la dirección de la entrada de validación en el diario Reanudar la ejecución de las transacciones

Administración de Bases de Datos Puntos de validación (checkpoint) Los puntos de validación permiten: Recorrer el diario a partir del último punto de validación ... Y no desde el principio Ignorar las transacciones confirmadas antes del último punto de validación ... No es necesario rehacer TODAS las confirmadas leer/escribir inicio activa fin Parcialmente Confirmada confirmar confirmada Commit buffer [COMMIT] Commit diario [CHECKPOINT] terminada

Administración de Bases de Datos Tipos de Fallos (1) Fallo por imposición del control de concurrencia Violación de la seriabilización, bloqueo mortal, ... (2) Fallo en la transacción Overflow, división por cero, violaciones de restricciones, ... Fallos locales (sólo afectan a la transacción fallida) (3) Fallo software SGBD, SO, comunicaciones, ... Fallos globales (4) Fallo hardware Fallos en discos, máquinas, redes, ... (5) Fallos catastróficos Corte de suministro eléctrico, robo, incendio, inundación, sabotaje, borrado/sobreescritura accidental, etc.

Administración de Bases de Datos Técnicas de recuperación de fallos Ante fallos de tipo 1 o 2: Invertir las modificaciones que provocaron la inconsistencia: deshacer algunas operaciones <= diario Si es necesario, asegurar cambios correctos: rehacer algunas operaciones <= diario Ante fallos de tipo 3, 4 o 5: Restaurar copia de seguridad de la BD Reconstruir el estado consistente más reciente: rehacer algunas operaciones <= diario

Administración de Bases de Datos Técnicas de recuperación de fallos Actualización diferida No se modifica la BD hasta después de realizar un COMMIT Se difiere la consolidación de los cambios realizados por la transacción hasta después de confirmarse Si el fallo ocurre antes de alcanzarse su punto de confirmación, no es necesario deshacer sus operaciones Si el fallo ocurre después de su punto de confirmación, es necesario rehacer sus operaciones ESCRITURA DIARIO ESCRITURA BD T UPDATE... SELECT... INSERT... COMMIT...

Administración de Bases de Datos Técnicas de recuperación de fallos Algoritmo no-deshacer / rehacer Crear dos listas vacías: ACTIVAS y CONFIRMADAS Inicializar ACTIVAS con la lista de transacciones activas almacenada en el último registro de validación del diario Examinar el diario a partir del último punto de validación Si se encuentra [START T], añadir T a la lista ACTIVAS Si se encuentra [COMMIT T], mover R de ACTIVAS a CONFIRMADAS Al terminar de examinar el diario: Rehacer las operaciones <WRITE > de las transacciones en el mismo orden en que aparecen en el diario Reiniciar las transacciones de la lista ACTIVAS

Administración de Bases de Datos Técnicas de recuperación de fallos En el diario, las entradas <WRITE > sólo necesitan guardar el valor nuevo (pueden rehacerse, pero nunca deshacerse) Reiniciar una transacción es reintroducirla en el sistema como si fuera nueva Las operaciones de rehacen en el orden en que aparecen anotadas en el diario No se rehace cada transacción “aisladamente”, si no que se van rehaciendo todas las operaciones de las transacciones involucradas una a una.

Administración de Bases de Datos Técnicas de recuperación de fallos Actualización inmediata La BD puede modificarse antes de realizar un COMMIT Se actualizan inmediatamente los cambios realizados por la transacción antes de confirmarlos Si el fallo ocurre antes de alcanzarse su punto de confirmación, es necesario deshacer sus operaciones Si el fallo ocurre después de su punto de confirmación, es necesario rehacer sus operaciones ESCRITURA DIARIO ESCRITURA BD T UPDATE... SELECT... INSERT... COMMIT...

Administración de Bases de Datos Técnicas de recuperación de fallos Algoritmo deshacer / rehacer Crear dos listas vacías: ACTIVAS y CONFIRMADAS Inicializar ACTIVAS con la lista de transacciones activas almacenada en el último registro de validación del diario Examinar el diario a partir del último punto de validación Si se encuentra [START T], añadir T a la lista ACTIVAS Si se encuentra [COMMIT T], mover R de ACTIVAS a CONFIRMADAS Al terminar de examinar el diario: Deshacer las operaciones <WRITE > de las transacciones de la lista ACTIVAS, en orden inverso al del diario Rehacer las operaciones <WRITE > de las transacciones de CONFIRMADAS, en el mismo orden al del diario

Administración de Bases de Datos Técnicas de recuperación de fallos En el diario, las entradas <WRITE > necesitan guardar el valor anterior y nuevo: pueden rehacerse o deshacerse Se debe deshacer primero y rehacer después Las operaciones de deshacen en el orden inverso en que aparecen anotadas en el diario No se deshace cada transacción activa “aisladamente”, si no que se van rehaciendo todas las operaciones de las transacciones involucradas una a una. Las operaciones de rehacen en el mismo orden en que aparecen anotadas en el diario No se rehacen cada transacción confirmada “aisladamente”, si no que se van rehaciendo todas las operaciones de las transacciones involucradas una a una.

Administración de Bases de Datos Anexo: Mecanismos de recuperación en Oracle La Base de Datos entre otros contiene: Ficheros de datos (data files) Ficheros de recuperación (redo log files) Ficheros de control sobre la estructura física de la BDs (control file) Ficheros de parémetros (parameter file) Instancia de Oracle Conjunto de procesos que se ejecutan en background Zona de memoria global (System Global Area, SGA) Buffer de datos Buffer del diario Buffer de planes de ejecución de sentencias SQL Zona de memoria de proceso (Program Global Area, PGA)

Administración de Bases de Datos Anexo: Mecanismos de recuperación en Oracle Procesos de una instancia ORACLE DBWR (Database writer) CKPT (Checkpoint) LOGWR (Log Writer) ARCH (Archive) Si se produce un fallo, el sistema recurre a los ficheros de log para recuperar un estado consistente Tamaño del fichero de log: escritura circular. El sistema va alternando entre dos o más ficheros. Cuando termina con el último, empieza con el primero Fallo en los ficheros de log: escritura doble (multiplexada) Archivo histórico de logs Volcado periódico total del contenido completo de la BD (full dump)

Administración de Bases de Datos Anexo: Mecanismos de recuperación en Oracle Dump Volcar periódicamente el contenido entero de la BD: archivar De todos los datos (full dump) Sólo los datos modificados desde el último proceso de volcado (incremental dump) Volcado “en frío”: el SGBD está parado Volcado “en caliente”: el SGBD está funcionando Recuperación “en caliente”!