Configurar Mirroring en SQL Server

Database Mirroring aparece en la versión 2005 y  es la evolución de Log Shipping. Tal como su nombre lo indica,  sirve para tener una base de datos “espejada” en otro servidor.  Puede trabajar de 3 Formas:

modos de funcionamiento | Fuente: guillesql.es

modos de funcionamiento | Fuente: guillesql.es

De foma más simple, la principal diferencia entre la configuración síncrona o asíncrona es:

  • De modo síncrono, el servidor principal espera a que las transacciones hagan commit en el servidor espejo para poder continuar.
  • De modo asíncrono, el servidor principal trabaja sin esperar al secundario.

Algunas diferencias entre LogShipping y Mirroring (Hay muchas más, pero aquí están las que más me llaman la atención):

  • Database Mirroring es capaz de configurar una conexión segura entre ambos puntos.
  • Database Mirroring provee la capacidad de hacer failover automático.

Log Shipping no hace ninguna de las dos anteriores.

Para configurar Database Mirroring se puede hacer a través del asistente o se puede hacer a través de instrucciones en t-sql. En este caso, utilizaremos el asistente para ahorrar tiempo.

Antes de partir la configuración nos debemos asegurar que la base de datos esté en modo de recuperación Full y debemos crear un respaldo de la base de datos del servidor primario y restaurarla con la opción WITH NORECOVERY en el servidor que será espejo.

Esta configuración requiere algunas configuraciones en el firewall de ambos equipos. En el servidor principal y en el espejo se debe abrir el puerto TCP 5022. Ahora, si se decide usar otro puerto, hay que estar seguro que el puerto está disponible y se puede abrir para las conexiones.

Una vez que se tiene la configuración previa lista, se hace el asistente que permitirá configurar el mirroring

Abrir asistente

Abrir asistente

En la ventana principal se debe iniciar el asistente

Ventana Principal

Ventana Principal

Se inicia el asistente

Inicio del asistente

Inicio del asistente

Se puede o no configurar un testigo. El testigo servirá para poder tener un failover automático. En este artículo no configuraré un testigo.

Configuracion del testigo

Configuracion del testigo

Configuración del equipo principal. Se puede cambiar el puerto (pero recuerden que ya habíamos abierto el puerto 5022). Además, se puede seleccionar si se quiere cifrar o no la conexión.

Configuracion del primario

Configuracion del primario

Para la configuración del secundario es necesario conectarse antes (recordar abrir el puerto 1422 en el secundario). La ventana de configuración es exactamente igual al primario.

Configuracion del Secundario

Configuracion del Secundario

El servicio debe estar configurado con una cuenta de dominio. Se debe indicar la cuenta del servicio del servidor primario y del espejo.

Cuentas de servicio

Cuentas de servicio

Para Finalizar:

Finalizar

Finalizar

Al momento de finalizar, se inicia el proceso de configuración del mirroring. Si aparece este mensaje, es porque está todo bien

Progreso de Configuracion

Progreso de Configuracion

Al terminar el asistente, aparecerá una ventana así en la cual nos preguntará si queremos iniciar Mirroring al tiro o no. En mi caso, no  configuré el testigo, por lo que no activaré el mirroring para hacer una configuración antes de partir.

Iniciar mirroring

Iniciar mirroring

Antes de comenzar el mirroring, lo configuré como asíncrono y luego inicié el mirroring

Mirroring Funcionando

Mirroring Funcionando

 

Si por algún motivo, te aparece el error 1478 cuando echas a andar el mirroring, es porque debes respaldar el transaction log del servidor primario y luego tienes que hacer un restore with norecovery en el servidor espejo. Luego de eso, ya puedes echar a andar el mirroring.

Chau!

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *