Principios de bases de datos Capítulo 10 --- Tecnología de recuperación de bases de datos

1. Conceptos básicos de empresa

asuntos

La llamada transacción es una secuencia de operaciones de la base de datos definida por el usuario. Estas operaciones se hacen todas o no, lo cual es una unidad de trabajo indivisible.

El usuario puede mostrar y controlar el inicio y el final de la transacción. Si el usuario no muestra la transacción definida, el sistema de administración de la base de datos divide automáticamente la transacción de acuerdo con las regulaciones predeterminadas.
Generalmente hay tres declaraciones para definir transacciones en SQL:

-- 开启事务
BEGIN TRANSACTION;
-- 事务提交
COMMIT
-- 事务回滚
ROLLBACK

Características de la transacción ACID

La transacción tiene cuatro características: atomicidad, consistencia, aislamiento, durabilidad

Atomicidad

Una transacción es la unidad lógica de trabajo de la base de datos, las operaciones incluidas en la transacción están todas realizadas o no realizadas (estado de atención: éxito o fracaso, no hay estado de éxito parcial).

consistencia

La coherencia también significa que las operaciones incluidas en la transacción tienen éxito o fracasan. Esto se parece a la atomicidad. Pero la diferencia entre consistencia y atomicidad es que la consistencia se centra en la visibilidad de los datos. Los datos en el estado intermedio son invisibles para el exterior y solo los datos en el estado inicial y el estado final son visibles para el exterior. Por ejemplo, si A quiere transferir 100 del banco a B, la atomicidad se refiere a si toda la operación se ejecuta correctamente y con éxito, mientras que la coherencia se refiere a si la cuenta A se deduce con éxito y si la cuenta B se acredita con éxito, y el la cuenta A debe ser la misma que la cuenta B es coherente.

Aislamiento

La ejecución de una transacción no puede ser interferida por otras transacciones.

Persistente

La persistencia también se llama permanente, lo que significa que una vez que se confirma una transacción, los cambios en los datos de la base de datos serán permanentes.

2. Tipos de fallas

Aunque se han tomado diversas medidas en el sistema de la base de datos para evitar que se destruya la seguridad e integridad de los datos, y para asegurar la correcta ejecución de eventos concurrentes. Pero algunos fracasos son inevitables. Las posibles fallas en la base de datos se pueden dividir aproximadamente en las siguientes categorías.

  • Falla interna de la transacción: la falla interna de la transacción es inesperada y no puede ser manejada por el programa de aplicación, como desbordamiento de operación, transacción concurrente, etc.
  • Fallo del sistema: el fallo del sistema se refiere a cualquier evento que haga que el sistema deje de funcionar, provocando que el sistema se reinicie
  • Falla de soporte: la falla del sistema se denomina falla de software y la falla de soporte se denomina falla de hardware (daño del disco duro, interferencia de campo magnético, etc.).
  • Virus de computadora

3. Tecnología de realización de la recuperación

Las dos cuestiones clave involucradas en el mecanismo de recuperación son: cómo crear datos redundantes y cómo utilizar estos datos redundantes para lograr la recuperación de la base de datos. Las técnicas más utilizadas para crear datos redundantes son el volcado de datos y el registro de archivos de registro .

Volcado de datos

El volcado de datos es el proceso mediante el cual el administrador de la base de datos realiza regularmente una copia de seguridad de toda la base de datos. Estos datos respaldados se denominan copias de seguridad o copias de seguridad.
El volcado se puede dividir en almacenamiento estático y almacenamiento dinámico.

  • El almacenamiento estático es una operación de volcado cuando no hay transacciones en ejecución en el sistema y se puede obtener una copia completa de los datos.
  • Los datos se pueden modificar durante el almacenamiento dinámico, es decir, el volcado y las transacciones del usuario se pueden realizar al mismo tiempo. No hay garantía de que los datos obtenidos sean exactos y válidos.

Los dos métodos de almacenamiento de datos se pueden llevar a cabo de dos formas respectivamente:
Inserte la descripción de la imagen aquí
Volcado masivo: Volcado de todas las bases de datos cada vez
Volcado incremental: Volcado solo de los datos actualizados después del último volcado.
Volcado masivo y volcado incremental Comparación
Desde la perspectiva de la recuperación, es a menudo es más conveniente utilizar copias de seguridad obtenidas de volcados masivos para la recuperación.Si
la base de datos es grande y el procesamiento de transacciones es muy frecuente, el método de volcado incremental es más práctico y efectivo.

Archivo de registro de registro

1. Formato y contenido de los archivos de registro

El archivo de registro se utiliza para registrar la operación de actualización de la transacción en la base de datos. El formato de archivo de registro utilizado por diferentes bases de datos no es exactamente el mismo. Antes hay dos formatos: en unidades de registro de archivos de registro y el bloque de datos en unidades de archivos de registro .

El contenido que debe registrarse en el archivo de registro según el registro incluye:

  • Marca de inicio de cada transacción (BEGIN TRANSACTION)
  • El final de cada transacción (COMMIT o ROLLBACK)
  • Todas las operaciones de actualización de cada transacción
    se tratan como un registro en el archivo de registro.

El contenido de cada registro incluye lo siguiente:

  • ID de transacción (que indica qué transacción es)
  • Tipo de operación (insertar, eliminar o modificar)
  • Objeto de operación (ID de registro, No. de bloque)
  • El valor anterior de los datos antes de la actualización (para operaciones de inserción, este es un valor nulo)
  • El nuevo valor de los datos actualizados (para operaciones de eliminación, este elemento está vacío)

Para el archivo de registro con bloque de datos como unidad, incluye: identificador de transacción y bloque de datos actualizado
2. El papel de los archivos de registro

Los registros se pueden utilizar para la recuperación de fallos de transacciones y la recuperación de fallos del sistema en la recuperación de datos. Funciones específicas:

  • La recuperación de fallos de transacciones y la recuperación de fallos del sistema deben utilizar archivos de registro.
  • En el modo de volcado dinámico, se debe establecer un archivo de registro y la copia de respaldo y el archivo de registro se pueden combinar para restaurar de manera efectiva la base de datos.
  • Los registros también se pueden utilizar en volcados estáticos para garantizar que los datos se restauren al estado correcto en un momento determinado.
3. Archivos de registro de registro

Para garantizar que la base de datos sea recuperable, se deben seguir dos reglas al registrar archivos de registro:

  • El orden de registro sigue estrictamente la secuencia de tiempo de ejecución de transacciones concurrentes.
  • El archivo de registro debe escribirse primero, seguido de la base de datos.

¿Por qué necesitamos escribir el registro primero y luego escribir la base de datos?
Debido a que escribir en el registro y escribir en la base de datos son dos operaciones diferentes, puede ocurrir una falla entre estas dos operaciones, es decir, solo se completa una de las dos operaciones. Es decir, la base de datos se escribe primero, pero el log no se escribe, en este caso, la modificación no se puede restaurar más tarde.

4. Estrategia de recuperación

Cuando ocurre una falla mientras el sistema está en ejecución, debe usar la recuperación de copia y registro, pero debe tenerse en cuenta que las diferentes estrategias y métodos de recuperación de fallas son diferentes.

Recuperación de errores de transacción

Este tipo de falla significa que la transacción se detiene antes de que se ejecute hasta el final normal. En este momento, el subsistema de recuperación debe usar el archivo de registro para deshacer las modificaciones que la transacción ha realizado en la base de datos.
Los pasos de recuperación son:

  • Escanee el registro en la dirección inversa para encontrar la operación de actualización de la transacción
  • Realice las siguientes operaciones en el valor actualizado: operación de inserción -> eliminar datos de inserción, operación de modificación -> reemplazar el valor de publicación con el valor modificado antes, operación de eliminación -> operación de inserción.
  • Hasta que lea la marca correspondiente al inicio de la transacción

Recuperación de fallas del sistema

Hay dos razones para el estado inconsistente de la base de datos debido a una falla del sistema: una es que la transacción sin terminar ha escrito datos en la base de datos, y la otra es que la actualización de datos de la transacción comprometida puede permanecer aún en la caché. La solución es deshacer las transacciones que no se completaron cuando ocurrió la falla y rehacer las transacciones completadas.
Pasos de recuperación:

  • Escanee el registro hacia adelante para averiguar las transacciones que se han comprometido antes de que ocurra la falla, registre sus identificadores en la cola de rehacer, descubra las transacciones que no se completaron cuando ocurre la falla e identifique la cola de cancelación de registros
  • Cancelar cada transacción en la cola de cancelación
  • Rehacer cada transacción de la cola de la izquierda

Recuperación de fallas de medios

Después de que ocurre una falla de medio, los datos físicos y los archivos de datos de registro en el disco se destruyen. Este es el tipo de falla más grave. El método de recuperación es reinstalar la base de datos y luego rehacer las transacciones completadas.

5. Tecnología de recuperación con puesto de control

El subsistema de recuperación que utiliza tecnología de registro debe buscar en el registro para determinar qué transacciones deben rehacerse y cuáles deben deshacerse, lo que supondrá una gran pérdida de tiempo. Para resolver este problema, introduce el registro de puntos de control , registrando un aumento del archivo de puntos de control un nuevo inicio, y para permitir que el subsistema de recuperación dinámica mantenga un registro durante el registro en el archivo de registro.

El registro del punto de control incluye:

  • Establecer una lista de todas las tareas que se están ejecutando en el momento del punto de control.
  • La dirección del registro de registro más reciente de estas transacciones.

El método de mantener dinámicamente el registro es realizar periódicamente las operaciones de establecer puntos de control y guardar el estado de la base de datos. Los pasos específicos son los siguientes:

  • Escriba todos los registros de registro en el búfer de registro actual en el archivo de registro del disco
  • Escriba un registro de punto de control en el archivo de registro
  • Escriba todos los registros de datos en el búfer de datos actual en la base de datos del disco
  • La dirección del punto de control registrada en el archivo de registro se escribe en un archivo reiniciado El
    subsistema de recuperación puede establecer puntos de control de forma regular o irregular, o establecer puntos de control de acuerdo con ciertas reglas para guardar el estado de la base de datos.

Inserte la descripción de la imagen aquí
Estrategia de recuperación del subsistema:

  • Confirme la transacción antes del punto de control. En este caso, los datos se han escrito en la base de datos y no es necesario tratar con ellos.
  • Confirme entre el punto de control y la falla del sistema. En este caso, es posible que la base de datos no se escriba en la base de datos en el búfer y deba ser rehecha.
  • Si la transacción no se ha enviado en el momento del error, la transacción se cancelará.

El registro de deshacer se usa para registrar el estado antes de que comience la transacción y se usa para operaciones de reversión cuando la transacción falla; el registro de rehacer registra el estado después de que se ejecuta la transacción y se usa para restaurar los datos actualizados por la transacción exitosa que ha no se ha escrito en el archivo de datos.

El sistema utiliza el método del punto de control para restaurar los pasos:

  • Busque la dirección del último punto de control registrado en el archivo de registro del archivo de reinicio y busque el registro del último punto de control en el archivo de registro cambiando la dirección.
  • El registro del punto de control obtiene la lista activa de todas las transacciones en ejecución en el momento en que se establece el punto de control. Cree dos colas de transacciones
    -UNDO-LIST
    -REDO-
    LIST ponga temporalmente ACTIVE-LIST en la cola UNDO-LIST, la cola REDO está temporalmente vacía.
  • Escanee el archivo de registro hacia adelante desde el punto de control hasta el final del archivo de registro
    -si hay una transacción Ti recién iniciada, coloque temporalmente Ti en la cola UNDO-LIST
    -si hay una transacción comprometida Tj, mueva Tj desde UNDO-LIST cola a la cola REDO -LIST; hasta el final del archivo de registro
  • Realice operaciones UNDO en cada transacción en UNDO-LIST y realice operaciones REDO en cada transacción en REDO-LIST

Ventajas de usar puntos de control: acorte el tiempo del registro de escaneo para mejorar la eficiencia de la recuperación

6. Creación de reflejo de la base de datos

La duplicación de bases de datos es una buena solución para fallas en los medios, es decir, preparar varios discos duros y utilizar la duplicación de bases de datos para realizar copias de seguridad de los datos de un disco duro a varios discos duros en tiempo real.

Supongo que te gusta

Origin blog.csdn.net/qq_41262903/article/details/106295898
Recomendado
Clasificación