Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Definición Procedimiento Explicación Problemas Con pérdida de memoria volátil Actualización diferida Garantiza la atomicidad de las transacciones mediante el almacenamiento de las modificaciones en el registro histórico, pero retardando la actualización en la base de datos hasta que la transacción se compromete parcialmente Rehacer la transacción para todas aquellas transacciones iniciadas y comprometidas. Así, si el sistema cae después de que la transacción complete su ejecución, la información en el registro histórico se utiliza para restituir el sistema a un estado consistente anterior. Los datos se actualizan en memoria secundaria cuando la transacción se compromete parcialmente, ya que se usarán para la ejecución de las escrituras diferidas. Si el sistema cae antes de que la transacción complete su ejecución o si la transacción aborta, la información del registro histórico se ignora. Por eso, los registros del registro histórico, en este caso, no guardan el valor inicial del dato ya que sólo se rehace la transacción: en cualquier estado en que se encuentre la base de datos, el resultado final es consistente (los valores de los datos serán los correctos). Al sólo rehacer los cambios, la recuperación es más rápida. En transacciones largas, la memoria intermedia puede verse sobrecargada, ya que los datos actualizados no se escribirán en disco hasta que se comprometa la transacción, quedando un gran volumen de datos en la memoria intermedia. Actualización inmediata Permite realizar escrituras en la base de datos mientras la transacción aún se encuentra en estado activo. ●Deshacer la transacción, para todas aquellas transacciones iniciadas y no comprometidas, usando los valores iniciales. ●Deshacer y luego rehacer la transacción para todas aquellas Los datos se escriben en disco a medida que se ejecuta la transacción (antes de que cada operación de la transacción se inicie). Las modificaciones de datos escritas por transacciones activas se denominan modificaciones no comprometidas. En este caso sí importan los valores iniciales: se los usa para restaurar los elementos de datos modificados a los valores que tuvieran antes de comenzar la transacción. La acción de recuperación dependerá de en qué estado estaba la transacción en el momento en el que se cayó el sistema. La recuperación es más lenta, ya que deshace las transacciones no comprometidas y deshace y rehace aquellas que quedaron comprometidas. ARIES ARIES es un algoritmo de recuperación avanzado que intenta reducir el tiempo de recuperación. • Cada registro del registro histórico tiene un número de secuencia del registro histórico (NSR). También utiliza estos números en las páginas de la BD (NSRPágina) para identificar operaciones realizadas sobre ellas. • Tabla de páginas desfasadas o sucias (páginas actualizadas en memoria pero no en disco), para minimizar las operaciones rehacer innecesarias durante la recuperación. • Esquema de revisión difusa. El algoritmo ARIES consta de tres pasos: a) Análisis. Se identifican las páginas sucias que residían en el buffer pool y el conjunto de transacciones en vuelo en el instante del fallo del sistema. También se establece el punto del log para aplicación de los siguientes pasos que coincide con el último registro de CheckPoint. b) Redo. Se aplican las acciones para la reconstrucción hacia adelante de las transacciones que ganaron el COMMIT. Se parte del punto de inicio establecido para la recuperación en el log. c) Undo. El log se rastrea hacia atrás desde el punto del fallo hasta el punto marcado en el log como inicio de la recuperación deshaciendo cambios en las páginas de la BDF afectadas por transacciones que no ganaron el COMMIT llegado el instante del fallo. ARIES realiza las siguientes acciones en los puntos de control del sistema: a) Escribe un registro de inicio de checkpoint en el log. b) Escribe un registro de fin de checkpoint en el log al que van añadidas las tablas de transacciones activas y la tabla de páginas sucias. c) Salva el LSN del registro de inicio de checkpoint en un fichero especial de acceso rápido. Este fichero de acceso rápido se utiliza durante el procedimiento de rearranque en caliente para acceder inmediatamente al punto del log del último checkpoint.cciones en los puntos de control del sistema: ARIES mantiene las siguientes tablas para garantizar una recuperación eficiente: a) Tabla de transacciones activas o en vuelo. Contiene una entrada para cada transacción activa con información del ID de la transacción, estado de la misma y puntero LSN al registro más reciente de la transacción en el log. b) Tabla de páginas sucias. Contiene una entrada para cada página sucia en el buffer pool que incluye el ID de la página y el LSN correspondiente al registro en el log del estado actualizado inmediatamente anterior de la página. ARIES tiene activamente una lista de estas páginas, registrando los siguientes datos en este orden: ● ID de página o bloque (NSR). ● Cuál es la última línea del registro histórico ● Cuál es la primera línea del registro histórico que modificó esa página o bloque (la que la desfasó). ARIES maneja otra lista: la lista de transacciones abiertas que contiene, para cada una de ellas, el ID de transacción y la última línea de la misma. En ARIES, cada punto de revisión en el registro histórico guarda las dos tablas mencionadas y, en función de las mismas, analiza todo lo que ocurrió desde el punto de revisión hasta que falló el sistema (a esto se lo denomina esquema de revisión difuso), luego determina qué transacciones es necesario rehacer (y las rehace) y, finalmente, cuáles hay que deshacer (y las deshace). Ambas tablas se guardan en memoria secundaria sólo cuando hay puntos de revisión. Es decir, en el momento del crash no voy a tener los últimos datos en estas dos tablas. Con pérdida de memoria no volátil Completo (full back up) • Incluye toda la base de datos, partes del registro histórico, esquema de base de datos y estructura de archivos. • Sirve como base para realizar los otros dos tipos de back up. Almacena información redundante ya que los valores de datos que no se modificaron se vuelven a copiar. Diferencial • Permite respaldar los datos modificados desde el último back up completo. Por este motivo, • requiere que haya sido realizado antes un full back up. Lo que se guarda son las diferencias entre el último dato guardado en el back up completo. Al restaurar, se suma ese valor al diferencial para restaurar el dato. Incremental • Realiza un respaldo de todos los datos modificados desde el último respaldo. • Dado que almacena los cambios desde la última modificación (y no desde la última copia completa), para recuperar se requieren todas las modificaciones que se hicieron desde el último back up completo y realizar todos los cálculos para llegar al valor más reciente. Si se llegase a perder una modificación, la recuperación se vuelve imposible. • Toma menos tiempo de ejecución que un back up diferencial, pero toma más tiempo de recuperación y es más complejo de manejar.
Compartir