template

 


Que son las técnicas de recuperación
Las técnicas de recuperación son un conjunto de procedimientos utilizados para restaurar datos y llevarla a un estado desde el cual se pueda proseguir con las labores de manipulación de datos.
Debido al invencible mounstro de las fallas es que las técnicas de recuperación han entrado en una batalla de titanes. No siempre las técnicas de recuperación lograr restaurar en un 100% los datos, algunos de ellos se pierden ya que no se les puede ubicar en un estado para continuar con procesos.

Sobre las técnicas de recuperación
Algunos sistemas aplican una técnica de resistencia a caídas (crash resistance) a diferencia con las demás técnicas, la de la resistencia en vez de restaurar los datos, mantiene estados correctos gracias a la manera de manipular los datos durante el proceso normal. Son sistemas que poseen algoritmos que implícitamente lleven a la base de datos a un estado correcto.
Por otro lado otra técnica hace uso de los checkpoints o puntos de chequeo, se refiere al estado pasado de la base de datos la cual sirve como guía para saber donde se debe de iniciar la restauración de los datos. Básicamente podríamos decir que se trata de una marca a partir de la cual se genera una copia o respaldo de la base de datos. Este proceso es conocido como checkpointing o marca de la base de datos.
Otra técnica usada es la de revertir las transacciones completas hasta cierto punto, así se logra llevar a un estado anterior a la falla.
Las técnicas de recuperación existen como una tarea alterna de los sistemas para el control de errores de las bases de datos, esto es que si no existen errores que puedan ocasionar perdida de datos no hace falta las técnicas de recuperación.

Para entender bien las técnicas de recuperación es importante hablar de los tipos de fallas que se pueden encontrar en algunos sistemas de bases de datos.
ü Fallas que permite hacer una recuperación
ü Fallas que no permiten hacer recuperaciones

Una falla de cualquier tipo puede provenir de diversas fuentes, entre ellas podemos encontrar:

ü Fallas generadas por la aplicación
ü Fallas generadas por el sistema de bases de datos
ü Fallas de hardware
ü Fallas del entorno


Las transacciones en una base de datos
Una transacción es un proceso que se ejecuta en una base de datos el cual tiene afectación a los datos almacenados en ella. Es precisamente el MOTOR de la base de datos la que indica - en ultima instancia - como se verán afectadas las distintas entidades que conforma la base de datos. A esto le llamamos transacción, así debemos entender que una base de datos solo guarda los datos y todas las operaciones que realicemos con esos datos los haremos por medio de transacciones, existen otros puntos importantes en el tema de las transacciones tales como uso de BATCH, ACTUALIZACIONES EN LINEA, etc., pero no son el tema de esta investigación.

Estados de los datos en una base de datos
Una base de datos puede estar en diferentes estados, estos nos permite catalogar los datos almacenados en ella.
1. Estado correcto; esto es que en la base de datos se encuentra la ultima versión de los datos que los usuarios han actualizado.
2. Estado valido, se refiere a un estado donde la base de datos es una copia que algún momento de la historia pudo ser catalogada como correcta. Es valido y no correcto porque los usuarios han realizado actualizaciones sobre la base de datos que la convierten en una versión anterior que probablemente posee datos que no existen.
3. Estado Consiente; se dice que esta este estado si se encuentra en estado valido y además los datos que se extraen de ella cumplen con los requisitos de consistencia del usuario.


Con esto podemos entender que las técnicas de recuperación intentan llevar después de una falla los datos a estados correcto o validos.


Categorías de las técnicas

Una técnica se puede categorizar deacuerdo a dos posibilidades
v El tamaño del daño y el origen del daño
v Según las estructuras de datos para ubicar los datos actuales, a la información de recuperación necesarios para la restauración de valores previos


Ya en este contexto se pueden mencionar las siguientes técnicas.
Como se diferencian las técnicas
Esta básicamente se diferencian en tres grupos


1. La forma en que la información esta estructurada Ø Copias múltiples.
Ø Archivos de diferencias.
Ø Respaldos.


2. La forma en los datos son actualizados y procesados
Ø Reemplazos cuidadosos.
Ø Restricciones sobre las estructuras de datos.


3. Programas utilitarios (son externos a la base de datos.)
Ø Programa de salvación.
Ø Dumping incremental .
Ø Bitácora .


Clasificación de las técnicas.

Para lograr esta clasificación me basare en el orden propuesto por el articulo utilizado para realizar esta exposición.
Programas utilitarios

Programas de salvación
Se origina al hacer uso de los tipos de UTILITARIOS

Después que ocurre la falla un programa o utilitario se encarga de hacer un recorrido por todas las estructuras e intenta hacer una reconstrucción fiel y llevar a un estado consistente los datos.
Este tipo de técnica se puede mezclar con otras, como aquellas que nos permite iniciar desde algún estado o marca como las pistas de auditoria basadas en buffers.
Ejemplo Recover de novell Chkdsk del DOS
Desventaja

q No todos los datos pueden ser recuperados ya que solo algunos datos pueden ser reconocibles por el sistema utilizado.

Descarga incremental o Incremental Dumping

Para poder realizar este procedimiento, este método almacena una copia actualizada de la base de datos en un dispositivo de almacenamiento alterno (cinta, CDROM, discos ,etc.). Cada vez que realiza una copia se completa una marca, este proceso de copia se debe de realizar atravez de un calendario de copias.
Este método trabaja como un respaldo, pero en un estado activo para ser utilizado en cualquier presencia de falla en el sistema.
Al ser incremental, se entiende que las actualizaciones que se dan en el dispositivo alterno serán solamente de las entidades que han cambiado o de las cuales se registran cambios, pero como es una base de datos las entidades pueden sufrir cambios ocasionados por transacciones desde otras entidades.

Desventajas q El proceso no se puede realizar con frecuencia por el tiempo que involucra
q Degradación del sistema
q No es funcional para los sistemas de acceso remoto o en línea.


Pistas de auditoria Audit Trail

Este registra la secuencia de acciones o transacciones que se realizan sobre la base de datos, estas pistas contienen datos que nos permite reconocer por fecha, hora, transacción los procesos que se han ejecutado para afectar los datos de la base de datos, en los sistemas mas legalistas se pueden encontrar valores anteriores al proceso. Por supuesto, con tales datos es muy segura la recuperación de datos
Esta técnica es usada para deshacer los "deadlock" y los abrazos de oso en los problemas de concurrencia de las bases de datos. Las pistas de auditoria son reconocidas en algunas bases de datos como los Transacction Log Este método puede ser utilizado conjuntamente con otras técnicas coma la de los puntos de chequeo, lo cual nos permite hacer recuperaciones exitosas y eficientes sin llegar a extremos los recursos.

Desventajas:
q Sobrecarga de datos de pistas, los cuales deben de ser eliminados en algún momento por algún procedimiento externo.
q Las pistas se van registrando en el mimos orden conforme son recibidas, lo cual requiere una importante sección de los recursos del servidor de base de datos para procesar los requerimientos y para almacenar estas pistas.
q Requieren de una sección amplia para el almacenamiento de estos registros.


Estructura Interna
Archivos diferenciales (differential files)

En esta técnica se mantienen 2 copias del archivo (s) o tablas sobre las cuales se realizaran los procesos, una de ellas es utilizada como un borrador, luego que se realizan los cambios sobre los datos estos son actualizados a la tabla original. Un método propuesto establece usar mapa de bits, para cada entrada o registro se tiene una identificación, además de bits que indiquen si el registro esta en el archivo borrador o en el original, esto para los servicios de búsqueda de datos.

Desventajas q Utilización excesiva de los recursos del sistema para poder dar mantenimiento a todos los procesos.
q Cuando se requieren procesos muy pesados que hagan uso de múltiples tablas el sistema no responde versátilmente.
q pueden existir elementos modificados en el archivo borrador que puede ser modificado y no se realicen los procesos de actualización en la tabla principal.
q Para aquellos sistemas que se encuentra con servicios en línea pueden generar lotes de procesos que degraden el rendimiento.
q La necesidad hacer búsquedas de datos en mas de un lado no es eficiente
q No todo archivo puede ser sometido a este método.


Respaldo y Versiones Los respaldos son los sistemas de recuperación mas antiguos que existen, estos se encuentran en casi todos los sistemas que manipulan grandes masas de datos.
Los respaldos se basan en la tenencia de una copia idéntica de los datos almacenados en la base de datos en un momento de la historia.
Desventajas q Solo responde a una momento de la historia hacia atrás.


Estructura Interna
En esta técnica mas de una copia del archivo es mantenida. dentro de esta técnica se incluyen dos métodos: Ø Mantener un numero impar de copias de la base de datos, si la mayoría de estas copias tienen el mismo valor entonces ese dato es tomado como correcto. en este método el voto mayoritario, y es ampliamente utilizado en aplicaciones relaciones con naves espaciales, ya que dentro de estas existen varios computadoras, los cuales reciben la misma entrada de datos y luego se comparan los resultados que se obtienen de realzar un proceso.

Ø Mantener dos copias con indicadores que señalan una actualización en progreso. Una copia inconsistente es reconocida siempre, si después de una falla ese indicador permanece encendido. para ese método las múltiples copias son actualizadas por un mismo procesador.


La diferencia básica entre esta técnica y las otras que manejan copias de respaldo es que en la técnica en cuestión, las diferentes copias siempre tienen el mismo valor excepto en el momento de actualizar la estructura de datos en almacenamiento principal.
En esta técnica las copias existen todo el tiempo físicamente y no existe traslape entre ellas, además de que siempre tienen el mismo estatus. Debido a esta razón no puede confundirse con técnicas como las basadas en respaldos.

Desventajas
q Se duplica el tamaño de la base de datos.
q El sistema se vuelve sumamente lento cuando incluye esta técnica de recuperación.

Reemplazo cuidadoso (Carefull Replacement)


Este esquema elimina la posibilidad de actualizar la base de datos en sitio, es decir bajo la copia principal.
La actualización es realizada en una copia del original; esta actualización reemplaza al original solamente si dicha transacción es exitosa. Con esta técnica existen dos copias de la estructura de datos únicamente durante el proceso de actualización. La parte del tiempo restante solo existe una copia con la ultima versión de los datos del usuario.
La sobrecarga del sistema es un aspecto importante de tomar en cuenta, sin embargo existen diferentes maneras de manejar los procedimientos de esta técnica que hacen que la sobrecarga no sea un aspecto que pese mas que sus propias ventajas.
Como ventaja podemos citar el rápido acceso a la información ya que la ultima versión de datos se encuentra en un solo lugar.
La técnica de reemplazo cuidadoso es usada en sistemas de archivos utilizando una jerarquía de dispositivos los cuales trabajan bajo las reglas conocidas como "leaf-first" y "rootsegment". En cuanto a las reglas anotadas anteriormente se puede decir que, si tenemos tres dispositivos por ejemplo: memoria de rápido acceso, "drums", y disco duro, si ocurriese una falla el contenido que existe en memoria es perdida sin embargo una copia es mantenida en el "drum", y otra copia en el disco.
Con esta técnica las actualizaciones son realizadas en memoria y luego los reemplazos son realizados sobre dispositivos que contienen copias de los archivos.

Desventajas

q En ciertas estructuras la modificación es sumamente ineficiente (listas enlazadas, Unix)
q Requiere de estructuras de datos especiales para funcionar bien.
q Genera mas sobrecarga del sistema, aunque bien manejado es despreciable con respecto a sus ventajas.


Enfoque hacia el Futuro Todas las técnicas revisadas prestan los servicios de la recuperación de datos y casi ninguna de ellas tiene n la posibilidad de realizar una auto recuperación general incluyendo los dispositivos de almacenamiento. DEVICES, LOGS etc. Las técnicas antes descritas resuelven el problema de recuperación a fallas, ya sea por ellas mismas o la unión de varias de ellas de forma tal que el sistema este cubierto y protegido de un gran número de fallas. Sin embargo un aspecto que debe tomarse en cuenta es el hecho de que se deben realizar recuperaciones entre procesos que interactúan, es decir, son concurrentes en un momento dado del tiempo. Por ejemplo dos procesos, en un momento "t" tratan de actualizar el mismo dato de una misma fuente de manera concurrente. En caso de falla y si utilizáramos una técnica de recuperación que hace uso de los checkpoint, como saber cual transacción recuperar primero? Al momento de realizar este estudio, existían dos tendencias que estaban siendo evaluadas. Ø Prevenir las interacciones: Esto es logrado implementando esquemas que restringen el acceso a un registro de la base de datos dependiendo de la operación que se va a realizar, por ejemplo para un proceso de lectura múltiples accesos son permitidos, mientras que para un proceso de escritura el registro debe estar con acceso garantizado únicamente para el proceso que lo va a modificar. Ø Sincronizar los procesos de acuerdo a fallas: los procesos a ser restaurados son agrupados de manera eficiente, de esta forma, una vez que todos los procesos en dicho grupo o bloque son restaurados salen de este bloque y entran otros, de manera que no se incurra en intentar recuperar procesos que ocurrieron en un mismo momento para un mismo registro. Las dos técnicas anteriores son utilizadas para evitar que a la hora de restaurar procesos se convierte en una tarea indefinida o que ocurra un efecto domino a la hora de recuperar las transacciones que afectaron los valores de la base de datos. Para que una técnica de recuperación sea útil es imprescindible detectar el error que produce la falla, muchos ambientes han desarrollado métodos que facilitan la detección de errores. Dos de los métodos que son usados en ciertos sistemas son: Ø Revisar si el algoritmo de un proceso dado se ejecuta completa y satisfactoriamente, de acuerdo con las especificaciones iniciales. Ø Distinguir ciertos errores y revisar continuamente de su presencia y/o ausencia.
Tabla de referencia entre técnica y estado
técnica Estado correcto Estado previo Previo posible Estado valido Estado consistente Resistencia a fallas
Salvación ¨ ¨
Descarga incremental ¨ ¨
Pista de auditoria ¨ ¨ ¨
Archivo de diferencias ¨ ¨ ¨
Respaldos ¨ ¨
Copias múltiples ¨
Remplazo cuidadoso ¨

>

 



Por Lisandro Echeverria Villalobos
Investigacion, Algunas tecnicas de recuperacion, 1998 ITEC, Jose Casto y Mauricio Meneses Users Guide,SQL SERVER 6.25 Artículo de Joost S. M. Verhofstad. 1999

Hosted by www.Geocities.ws

1