Memorias de un DBA

Un blog dedicado a contribuir a la comunidad SQL Server en español

Proceso de Recuperación de la Base de Datos

leave a comment »

El proceso de recuperación de la base de datos es muy importante, que ocurre en ocasiones cuando se cierra inesperada o incorrectamente la base de datos. Cuando esto ocurre la base de datos queda en una estado inconsistente debido a que como ya hemos mencionado las bases de datos de SQL Server trabajan la información en memoria, es decir cuando se hacen modificaciones de datos en las tablas, estas antes deben de llevar las páginas de datos involucradas a la memoria, una vez en memoria recién se hacen las modificaciones, pero que es lo que sucede si justo después del cambio, el flujo de energía eléctrica hacia el servidor se corta, como sabemos las paginas se trabajaron en memoria, y este recurso es volátil, entonces cuando el servidor se vuelva a encender las paginas en memoria habrán desaparecido, ahora ¿cómo es que SQL Server asegura la durabilidad de la información cuando se hacen transacciones?, pues bueno lo hace a través del log de transacciones.

Recordemos un poco el proceso, cuando ya se tienen las paginas en memoria y se les hacen los cambios respectivos en cuanto a data se refiere, SQL Server escribe en el log de transacciones los cambios realizados por la transacción, esta escritura si es en disco, es decir las paginas se modifican en memoria, pero el registro de transacciones se modifica en disco, una vez que la escritura en el log de transacciones ha sido realizada, recién la base de datos le informa al usuario que la transacción ha sido confirmada.  Entonces cuando el servidor se enciende luego de que la base de datos ha sido cerrada incorrectamente, SQL Server ejecuta un proceso de recuperación para cada una de las bases de datos, en el cual primero se hace un “Rollforward” y luego un “Rollback”, luego de esto la información queda en un estado consistente.

Un “Rollforward” es un proceso por el cual SQL Server lee el log de transacciones y empieza a aplicar todos y cada uno de los cambios realizados en las páginas de la base de datos luego de ultimo checkpoint. En este punto no interesa si la transacción ha sido confirmada o rechazada, simplemente aplican todos los cambios.

Luego en el proceso de “Rollback”, SQL Server comienza a hacer un rollback de todas las transacciones que no fueron confirmadas además de las que fueron rechazadas, dejando de esta manera la base de datos en un estado consistente.

Este proceso de recuperación en algunos casos puede tardar mucho tiempo debido a la gran cantidad de información que tienen que replicar desde el log de transacciones. Es por eso que la frecuencia con la que se hacen los checkpoints dentro de la base de datos es crucial para el tiempo que tardara el servidor en ejecutar el proceso de recuperación.

Adicionalmente cabe mencionar que en algunas pocas ocasiones el terminar el servicio de SQL Server de manera inesperada puede causar corrupciones de datos, y esto sí es grave debido a que en algunos casos puede ser recuperable la información, pero siempre con un riesgo de perder algo de data, y en otros no es posible arreglar la base de datos, entonces lo único que queda en estas situaciones es la restauración de backups y es ahí donde si se tiene una buena estrategia de backups se puede llegar a recuperar absolutamente toda la información hasta el momento del desastre.

Bueno esta ha sido una breve explicación en lo que refiere al proceso de recuperación que se ejecuta en el servidor de base de datos cada vez que el servicio se apaga de una manera incorrecta.

 

Written by dbamemories

agosto 28, 2011 a 7:09 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: