miércoles, 11 de marzo de 2015

Opciones Para Alta Disponibilidad Para SQLServer

En esta mi primera entrada quiero hablarles de lo importante que es mantener una alta disponibilidad de la data como plan de contingencia en las empresas o circunstancias que a meriten este tipo de servicio, ya que es de vital importancia contar con un segundo servidor que pueda responder inmediatamente y de forma automática cuando se presente un problema con nuestro servidor principal. 


En este caso veremos los diferentes servicios que nos ofrece SQLServer para la alta disponibilidad de la dataExplicare de forma simple en que consiste cada una de esta configuraciones y mostrare en este caso como configurar el Espejeo o Mirroring.


Opciones de contingencia en  SQLServer


  •       Replica Transaccional
  •       Replica De Mezcla
  •       Replica de instantáneas (snapshot)
  •       Mirror o Espejeo 




Replica Transaccional 

Consiste en convertir al servidor principal en un publicador y al servidor secundario en un subscriptor. El publicador se en cargara de enviar de manera inmediata las nuevas modificaciones o actualizaciones realizadas en la base de datos al subscriptor (servidor secundario).

Este tipo de replica solo asume los cambios del principal al secundario no viceversa. 










Replica De Mezcla

La replica de mezcla consiste en la misma lógica que la replica transaccional, con la diferencia de que los cambios se envían de ambos lados, por ejemplo los cambios realizados en la base de datos principal son enviados al subscriptor y los cambios realizados en el subscriptor también son enviados a la base de datos principal.







Replica de instantáneas(snapshot)


La replica instantánea o snapshot al momento de actualizar a los subscriptores lo que hace es una imagen de toda la base de dato y la envía completa al subscriptor en un intervalo de tiempo previamente especificado. Este tipo de replica no verifica los cambios del subscriptor ni del distribuidor, sino que lo envía en el tiempo especificado.







Mirror o Espejeo

Consiste en mantener 3 servidores  sincronizados (también permite usar solo dos)  el principal, el secundario y el testigo o witness

El principal tendrá la base de datos en producción, mientras que el secundario mantendrá la base de datos en modo de restauración (ojo esa base de datos no estará disponible amenos que el principal falle o se desconecte), el trabajo del testigo es de monitoriar al servidor principal y si este falla el hará el cambio automático de la base de datos, la restaurara por completo en el segundo servidor.

Su ventaja es que no necesitara intervención del usuario para hacer el cambio y tendrá una replica exacta de la base de datos principal en el secundario inmediatamente el principal tenga algún inconveniente.
  



Configurando  Un Mirror En SQLServer

Antes de iniciar con la configuración, les informo que lo ideal seria crearla bajo un dominio y usar un único usuario de Active Directory con privilegios de administrador tanto en el Active como en los servidores.

La configuración que mostrare a continuación la realize bajo un único usuario del dominio llamado SQLadmin, este usuario tiene privilegios de administrador en todos los servidores (sino cuenta con estos privilegios no podrá sincronizar) , también agregue el usuario SQLadmin en las 3 instancias de SQLserver e inicie el servicio del SQL Browser con el mismo usuario.





Luego de que esta parte este completa podemos proceder con la configuración.

Seleccionamos la base de datos que deseamos sincronizar o la que sera la principal. 

Damos clic derecho a la base de datos y seleccionamos propiedades. 

Seleccionamos "Opciones"


Verificamos el recovery este en "FULL", ya que si no esta en modo full no se podra restaurar el backup en modo recovery.


Luego generamos el backup de la base de datos.


Verificar que el recovery aun este en "FULL" de igual forma el tipo de Backup. Luego de generado el backup lo copiamos en un lugar accesible para nuestra segunda instancia ya que lo restauraremos en ella.





Ahora vamos a nuestro segunda instancia y restauramos el bakup generado anteriormente







Es de suma importancia cambiar en las opciones el modo de restauración, seleccionar "RESTORE WITH  NORECOVERY", porque como dije anteriormente esta se mantendrá en modo restauración.







Y de esta forma el Backup de mantiene en modo de restoring.......





Volvemos a nuestra instancia principal, seleccionamos la base de datos a la cual le creamos el backup y elegimos propiedades.


Seleccionamos la opcion "Mirroring" y lugo presionamos a "Configure Security".


Nos sale el wizard para la configuración de la sincronizacion, en el cual nos pregunta si utilizaremos un servidor testigo (en este caso si lo usaremos pero también se puede obviar).




En la ventana siguiente nos muestra el servidor principal y el puerto que vamos a abrir para la configuración, en este caso usaremos el que esta por default.




En esta otra ventana elegimos el server o instancia que usaremos de secundaria (ojo el usuario en el cual estableceremos la sesión debe de ser el mismo en  todas las instancias que se usaran en el mirror).





En esta parte nos pide el servidor que utilizaremos como testigo, como dije antes es el que monitoriara  las demás instancia y activara la secundaria automáticamente si se pierde la comunicación con el principal.





Listo! Como pueden ver ya están sincronizados.






No hay comentarios:

Publicar un comentario