lunes, 29 de marzo de 2010

Introducción a SQL Server Mirroring

Mirroring es una solución software, introducida en SQL Server 2005, que nos permite tener un sistema de base de datos tolerante a fallos, aumentando la seguridad y la disponibilidad, mediante la duplicidad de la base de datos.
La "duplicación" se hace a nivel de base de datos, es decir, no se configura simplemente una instancia para que actúe como "espejo" de otra, si no que hay que crear una base de datos "espejo" por cada base de datos "principal". Hay que crear los mismos usuarios en la base de datos "espejo" (aunque la base de datos "espejo" no está accesible mientras haya otra "principal" activa, ésta será accesible en el momento en el que la instancia principal falle o lo especifiquemos manualmente), así como también los mismos trabajos condicionados para que se ejecuten según si la base de datos está funcionando como "espejo" o como "principal".

Una vez duplicada la base de datos (el registro de transacciones, los usuarios y los trabajos) hay que elegir el modo de funcionamiento en el que usaremos el "mirroring":

- Alta seguridad: Este modo ejecuta en la instancia "espejo" las mismas transacciones que se ejecutan en la instancia "principal". Se realizan de forma síncrona, es decir, por cada transacción ejecutada en la base de datos principal, se comprueba que se ha podido ejecutar en la base de datos espejo. Lo bueno es que no se pierde ninguna transacción, lo malo es que haría algo más lentas las transacciones con lo cual, la aplicación se ejecutaría sensiblemente más lenta.
En este modo el cambio de base de datos, en el caso en el que falle la bd principal, se hace de forma manual. Si se "cae" el servidor espejo la base de datos principal deja de estar activa.

- Alto rendimiento: Este modo ejecuta las transacciones, ejecutadas en la BD principal, en la BD espejo de forma asíncrona. Con esto se consigue mantener la latencia de las transacciones pero hay riesgo de pérdida de datos. El cambio de base de datos si la bd principal falla también se hace de forma manual. Si se cae el servidor espejo, el principal sigue funcionando.

Al modo de alta seguridad hay que sumarle la posibilidad de agregar un tercer servidor llamado "testigo" el cual servirá para poder automatizar la recuperación ante fallos. De esta forma, el modo "alta seguridad se divide en dos":
- Alta protección: alta seguridad sin testigo.
- Alta disponibilidad: alta seguridad con testigo.

Al añadirle un servidor "testigo", además permitimos que, si se cae el servidor espejo, la BD principal siga estando activa.

No hay comentarios:

Publicar un comentario