XenDesktop – SQL Mirroring amb Witness

Sóc Oscar Mas i us vull ensenyar com implementar un sistema de Mirror amb Witness basat en Microsoft SQL Server, el qual és un exemple perfecte i recomanat per tenir en alta disponibilitat la nostra base de dades de XenDesktop. D'aquesta manera aconseguirem tenir un mirror amb failover de Microsoft SQL.

Para tener un automatic failover, el mirror se ha de configurar en “high-safety mode”, cosa que se hace de manera automática al seleccionar el witness en el wizard de configuración que veremos más adelante. Le hemos de proveer de un tercer servidor, en nuestro caso llamado witness.ilba.cat, el cual nos hará las funcionalidades de testigo. En la siguiente imagen podremos observar el modo high-safety con Witness:

 

xendesktop-sql-mirroring-witness-01-bujarra

Todo el post lo he realizado con SQL 2012 Server y SQL 2012 Express. Las bases de datos de los servidores sql1.ilba.cat y sql2.ilba.cat tienen SQL 2012 Server y el Witness está basado en SQL 2012 Express. He escogido la versión 2012, pero el procedimiento es casi idéntico en todas las versiones de Microsoft SQL. Os dejo el Matrix de versiones de SQL que soportan los productos de Citrix: http://support.citrix.com/article/CTX114501

 

El esquema lógico quedar de la siguiente manera:

xendesktop-sql-mirroring-witness-02-bujarra

Una vez acabados de instalar los SQL en los tres servidores, es altamente aconsejable que se actualicen los servidores mediante la herramienta de Windows Update, WSUS etc….

Durante el proceso de instalación tanto de los sistemas basados en SQL Server como en el SQL Express, se han configurado para soportar los sistemas en Mixed Mode (SQL Server authentication and Windows authentication). La instalación del SQL Express, se ha realizado dejando las opciones por defecto que nos brinda el wizard de instalación, pero en la instalación del SQL Server, hemos habilitado la opción de replicación en los dos servidores de SQL (sql1.ilba.cat y sql2.ilba.cat), tal y com se mostra en la següent figura:

xendesktop-sql-mirroring-witness-03-bujarra

Es highly aconsejable, instal·lar l'herramienta de administración (Management Studio) en tots els servidors, de aquesta forma si hi havia alguna incidència amb qualsevol dels servidors, podríem administrar i veure el que succeeix.

Crearemos la nostra base de dades en el sql1.ilba.cat, la cual llamaremos CTX_STORE. La cual posteriorment quan instal·lem XenDesktop, le indicarem aquesta base de dades la que volem utilitzar per desplegar els nostres o nostres brokers.

Recordar que si creamos la base de dades de manera manual, després al desplegar el nostre XenDesktop tendrem a actualitzar la BBDD de forma manual amb dos scripts que ens proporcionaran el Wizard de la instal·lació del nostre Delivery Controller. Un script el llançarem des del servidor de SQL primari i l'altre des del servidor que fa les funcionalitats de mirror. Per a més informació de com desplegar el nostre Delivery Controller amb un sistema basat en mirror de SQL, veure: http://support.citrix.com/article/CTX127359

 

xendesktop-sql-mirroring-witness-04-bujarra

El procediment que realitzarem per poder configurar el nostre sistema de Mirror amb Witness, serà el següent:

  • Creació del grup de servidors
  • Comprovació del port de SQL
  • Exportació de la base de dades
  • Importació de la base de dades
  • Configurant el mirror

 

Creació grup de servidors

Abans de procedir a la configuració del Mirror, crearem un grup en el nostre ADUC (Active Directory Users and Computers). Ja que més endavant, en el moment que creem el mirror, ens sol·licitarà un grup. Esto lo podréis ver en al final del apartat de configurando el mirror. En el meu cas he creat un grup que lo he llamado SQLServers:

xendesktop-sql-mirroring-witness-05-bujarra

 

Y en aquest grup le afegirem els tres servidors que formaran el nostre Mirror, tal como se indica en la següent captura:

xendesktop-sql-mirroring-witness-06-bujarra

 

Comprovació del port de SQL

La versió de SQL Server por defecto nos permet accedir al puerto del SQL, pero en el SQL Express tendremos que habilitar que escuche por el puerto predeterminado. El puerto por defecto del SQL és el 1433 TCP. Para verificar que realment el nostre servidor de SQL accepta peticions, lanzarem el següent comandament des de una consola:

C:Windows>netstat-ano | find "1433"

xendesktop-sql-mirroring-witness-07-bujarra

 

Exportación de la Base de Datos

Este procediment lo haremos des del primer servidor (sql1.ilba.cat). Lo que haremos durant l'exportació de la base de datos, es exportar tanto la base de datos que hemos creado anteriormente (CTX_STORE) y los logs de la base de datos. Esto es necesario para posteriormente poder configurar el mirror de SQL Server

Le habilitaremos a nuestra base de datos el “Full Recovery Mode”, ya que por defecto las bases de datos que creamos en SQL, son de “Simple Recovery Mode”. Lo haremos desde las propiedades de la base de datos de la siguiente manera:

xendesktop-sql-mirroring-witness-08-bujarra

 

Para exportar la base de datos, seleccionaremos nuestra base de datos (en nuestro caso CTX_STORE) y en la opción “Task”, le indicaremos “Back Up….”

xendesktop-sql-mirroring-witness-09-bujarra

 

Le indicaremos que el backup que queremos realizar es Full y la ubicación donde crearemos el backup de la base de datos

xendesktop-sql-mirroring-witness-10-bujarra

 

Per exportar els registres de la base de dades, seleccionaremos nuestra base de datos (en nuestro caso CTX_STORE) y en la opción “Task”, le indicaremos “Back Up….”

xendesktop-sql-mirroring-witness-11-bujarra

 

Li indicarem que la còpia de seguretat que volem realitzar sigui d'un backup del Transactional Log i la ubicació on crearem el backup dels registres de la base de dades

xendesktop-sql-mirroring-witness-12-bujarra

 

Importació de la Base de Dades

Aquest procediment d'importació el realitzarem des del segon servidor (sql2.ilba.cat). Copiarem les dades que hem exportat en el punt anterior, tant la base de dades del servidor, com els registres des del servidor sql1.ilba.cat al nostre servidor mirror: sql2.ilba.cat. És aconsellable que els camins d'origen i destinació siguin iguals.

Des del servidor que farà de mirror restaurarem la base de dades. Para importar la base de datos iremos a la opción “Task” y le indicaremos “Restore Database….”

xendesktop-sql-mirroring-witness-13-bujarra

 

Seleccionaremos la opción “Device” y seleccionaremos tanto la base de datos como los logs que hemos exportado con anterioridad, para que se importen:

xendesktop-sql-mirroring-witness-14-bujarra

 

Le indicaremos en “Recovery State” que es un “RESTORE WITH NORECOVERY”, de la següent manera:

xendesktop-sql-mirroring-witness-15-bujarra

 

Y podremos observar como empieza la restauración de la base de datos:

xendesktop-sql-mirroring-witness-16-bujarra

 

Configurado el Mirror

En este apartado, lo que haremos en la configuración del Mirror. Seleccionaremos nuestra base de datos desde el servidor (sql1.ilba.cat ). Para crear el mirror de la base de datos iremos a la opción “Task” y le indicaremos “Mirror….”

xendesktop-sql-mirroring-witness-17-bujarra

 

Nos aparecerá una ventana, en la cual nos iremos a la opción “Configura Security….”, la cual nos lanzara un wizard para poder configurar nuestro sistema de Mirror

xendesktop-sql-mirroring-witness-18-bujarra

 

Le indicaremos al Wizard que queremos Witness, posem “Yes”:

xendesktop-sql-mirroring-witness-19-bujarra

 

xendesktop-sql-mirroring-witness-20-bujarra

 

Seguidamente, nos solicitara el servidor que realizara las funcionalidades de “Principal Server”, en nuestro caso sql1.ilba.cat

xendesktop-sql-mirroring-witness-21-bujarra

 

Posteriorment, nos solicitara el servidor que realizara las funcionalidades de “Mirror Server”, en nuestro caso sql2.ilba.cat

xendesktop-sql-mirroring-witness-22-bujarra

 

I per últim, nos solicitara el servidor que realizara las funcionalidades de “Witness Server”, en nuestro caso witness.ilba.cat

xendesktop-sql-mirroring-witness-23-bujarra

 

En aquest pas, le indicaremos el grupo de servidores que hemos creado al principio del post, el cual lo hemos llamado SQLServers:

xendesktop-sql-mirroring-witness-24-bujarra

 

Verificaremos que la configuración de nuestro sistema de mirror sea correcto, una vez acabada la configuración:

xendesktop-sql-mirroring-witness-25-bujarra

 

Le indicaremos que inicie el mirror, tal como se indica en la siguiente pantalla:

xendesktop-sql-mirroring-witness-26-bujarra

 

Una vez indicado que inicie el mirror podremos ver la configuración de nuestro sistema, en el cual el principal es nuestro servidor sql1.ilba.cat, el servidor que hará de mirror es el sql2.ilba.cat y el servidor de hará de witness es el witness.ilba.cat:

xendesktop-sql-mirroring-witness-27-bujarra

 

Seguidamente, veremos en nuestro explorador de SQL que base de datos es la principal y que base de datos realiza la funcionalidad de mirror:

xendesktop-sql-mirroring-witness-28-bujarra

Espero que os sirve de ayuda. Un saludo

 

 

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Raspberry Pi - Usos de Bluetooth

18 de November de 2015