XenDesktop – SQL Mirroring con Witness
Soy Oscar Mas y os quiero enseñar cómo implementar un sistema de Mirror con Witness basado en Microsoft SQL Server, el cual es un ejemplo perfecto y recomendado para tener en alta disponibilidad nuestra base de datos de XenDesktop. De esta manera conseguiremos tener un mirror con 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:

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:

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 autentifikazioa eta Windows autentifikazioa). SQL Express instalazioa, instalazio-amatzaileak eskaintzen dizkigun lehenetsitako aukerak utziz egin da, baina SQL Server instalazioan, replikazio aukera gaitu dugu SQL bi zerbitzarietan (sql1.ilba.cat eta sql2.ilba.cat), honela erakusten da hurrengo irudian:

Gomendagarria da, kudeaketa-tresna instalatzea (Management Studio) zerbitzari guztietan, haldapen edo arazo bat sortzen bada edozein zerbitzarirekin, kudeatu eta ikus dezakegu zer gertatzen den.
Gure datu-basea sortuko dugu sql1.ilba.cat-en, eta CTX_STORE izena emango diogu. XenDesktop instalatzen dugunean gero, le indicaremos esta base de datos la que queremos usar para desplegar nuestro o nuestros brokers.
Recordar que si creamos la base de datos de manera manual, después al desplegar nuestro XenDesktop tendremos que actualizar la BBDD de forma manual con dos scripts que nos proporcionara el Wizard de la instalación de nuestro Delivery Controller. Un script lo lanzaremos desde el servidor de SQL primario y el otro desde el servidor que hace las funcionalidades de mirror. Para más información de cómo desplegar nuestro Delivery Controller con un sistema de basado en mirror de SQL, ver: http://support.citrix.com/article/CTX127359

El procedimiento que realizaremos para poder configurar nuestro sistema de Mirror con Witness, será el siguiente:
- Creación del grupo de servidores
- Chequeo del puerto de SQL
- Exportación de la base de datos
- Importación de la base de datos
- Configurando el mirror
Creación grupo de servidores
Antes de proceder a la configuración del Mirror, crearemos un grupo en nuestro ADUC (Active Directory Users and Computers). Ya que más adelante, en el momento que creemos el mirror, nos solicitara un grupo. Esto lo podréis ver en al final del apartado de configurando el mirror. En mi caso he creado un grupo que lo he llamado SQLServers:

Y en este grupo le añadiremos los tres servidores que formaran nuestro Mirror, tal como se indica en la siguiente captura:

Chequeo del puerto de SQL
La versión de SQL Server por defecto nos permite acceder al puerto del SQL, pero en el SQL Express tendremos que habilitar que escuche por el puerto predeterminado. El puerto por defecto del SQL es el 1433 TCP. Para verificar que realmente nuestro servidor de SQL acepta peticiones, lanzaremos el siguiente comando desde una consola:
C:Windows>netstat -ano | find "1433"

Exportación de la Base de Datos
Este procedimiento lo haremos desde el primer servidor (sql1.ilba.cat). Lo que haremos durante la exportación 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:

Datu-basea esportatzeko, gure datu-basea aukeratuko dugu (gure kasuan CTX_STORE) ‘Task’ aukera barruan, ‘Back Up….’ aukera adieraziko diogu

Datu-basearen backup-a egin nahi dugula eta backup hori non soriko dugun adieraziko diogu

Datu-basearen log-ak esportatzeko, gure datu-basea aukeratuko dugu (gure kasuan CTX_STORE) ‘Task’ aukera barruan, ‘Back Up….’ aukera adieraziko diogu

Transactional Log-aren backup bat egin nahi dugula eta logen backup-a non soriko dugun adieraziko diogu

Datu-basearen inportazioa
Inportazio prozedura hau bigarren zerbitzariatik egingo dugu (sql2.ilba.cat). Aurretik esportatu ditugun datuak kopiatu egingo ditugu, zerbitzariaren datu-basea eta, sql1.ilba.cat zerbitzaritik gure mirror zerbitzarira log-ak: sql2.ilba.cat. Gomendagarria da jatorrizko eta helmugako path-ak berdinak izatea.
Mirror gisa jardungo duen zerbitzaritik datu-basea berreskuratuko dugu. Datu-basea inportatzeko 'Task' aukera erabiliko dugu eta 'Restore Database...' esango diogu

'Device' aukera hautatuko dugu eta aurrekoan esportatu ditugun datu-basea eta log-ak hautatuko ditugu, inportatzeko:

'Recovery State'-n 'RESTORE WITH NORECOVERY' dela esan behar dugu, honela:

Eta ikusiko dugu nola hasten den datu-basearen berrespena:

Mirrorra konfiguratu da
Atal honetan, Mirror konfiguratzen dugunean egingo duguna. Gure datu-basea zerbitzaritik hautatuko dugu (sql1.ilba.cat ). Datu-basearen mirrorrak sortzeko, 'Task' aukerara joango gara eta 'Mirror….' adieraziko diogu

Leiho bat agertuko zaigu, non 'Configura Security….' aukerara joango garen, eta horrek Wizard bat abiaraziko digu gure Mirror sistema konfiguratzeko

Wizard-i esango diogu Witness nahi dugula, Sakatu “Yes”:


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

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

Y por último, nos solicitara el servidor que realizara las funcionalidades de “Witness Server”, en nuestro caso witness.ilba.cat

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

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

Mirrorra hasieratzeko esango diogu, hurrengo pantailan adierazten den bezala:

Mirrorra hasieratzeko esandakoan, gure sistemaren konfigurazioa ikus dezakegu, non nagusia gure sql1.ilba.cat zerbitzaria den, Mirror gisa arituko den zerbitzaria sql2.ilba.cat da eta witness gisa arituko den zerbitzaria witness.ilba.cat da:

Ondoren, Gure SQL esploratzailean ikusiko dugu zein datu-base den nagusia eta zein datu-base egiten duen mirror funtzionalitatea:

Espero dut lagungarria izatea. Agur bat







































