Bases de datos

Un sitio de XenApp o XenDesktop utiliza tres bases de datos de SQL Server:

  • Sitio: También conocida como Configuración del sitio, esta base de datos almacena la configuración activa del sitio, el estado actual de la sesión y la información de conexión.
  • Registro de configuración: También conocida como Registro, esta base de datos almacena información acerca de actividades de tipo administrativo y los cambios de configuración en el sitio. Esta base de datos se usa cuando la función Registro de configuración está habilitada (opción predeterminada).
  • Supervisión: Esta base de datos almacena los datos que utiliza Director, como la información de conexión y de sesión.

Cada Delivery Controller se comunica con la base de datos del sitio; es necesaria la autenticación de Windows entre el Controller y las bases de datos. Un Controller se puede desconectar o apagar sin que esta acción afecte a los otros Controllers del sitio. No obstante, esto significa que la base de datos del sitio representa un punto único de fallo. Si el servidor de base de datos da error, las conexiones existentes seguirán funcionando hasta que el usuario cierre sesión o se desconecte. Para obtener información sobre el comportamiento de las conexiones cuando la base de datos del sitio no está disponible, consulte Caché de host local.

Citrix recomienda realizar una copia de seguridad de las bases de datos periódicamente para poder restaurarla a partir de esa copia si el servidor de base de datos falla. La estrategia de copia de respaldo para cada base de datos puede ser distinta. Para obtener instrucciones, consulte CTX135207.

Si el sitio contiene más de una zona, la base de datos del sitio debe estar siempre en la zona principal. Los Controllers de cada zona se comunicarán con esa base de datos.

Alta disponibilidad

Existen varias soluciones de alta disponibilidad que es conveniente tener en cuenta para garantizar la conmutación por error automática:

  • Grupos de disponibilidad AlwaysOn (incluidos los grupos de disponibilidad básica): Esta solución de alta disponibilidad y recuperación ante desastres para empresas introducida en SQL Server 2012 permite maximizar la disponibilidad de una o varias bases de datos. Los grupos de disponibilidad AlwaysOn requieren que las instancias de SQL Server residan en los nodos de clústeres de conmutación por error de Windows Server (WSFC). Para obtener más información, consulte https://msdn.microsoft.com/en-us/library/hh510230.
  • Imagen reflejo de la base de datos de SQL Server: Reflejar la base de datos garantiza que, si se pierde la conexión con el servidor de base de datos activo, el proceso automático de conmutación por error se produzca rápidamente (en cuestión de segundos) para que los usuarios en general no resulten afectados. No obstante, este método es más costoso que las soluciones alternativas, ya que se requieren licencias de SQL Server completas en cada servidor de base de datos; tenga en cuenta que no se puede usar SQL Server Express en un entorno reflejado.
  • Agrupación en clústeres de SQL: La tecnología de agrupación en clústeres de SQL de Microsoft se puede usar para permitir automáticamente que un servidor tome el control de las tareas y las responsabilidades de otro servidor que ha fallado. No obstante, la instalación de esta solución es más complicada y el proceso automático de conmutación por error generalmente es más lento que con las soluciones alternativas como la creación de reflejo de SQL.
  • Con las funciones de alta disponibilidad del hipervisor: Con este método, la base de datos se puede implementar como una máquina virtual y se pueden utilizar las funciones de alta disponibilidad del hipervisor. Esta solución es menos costosa que la creación de reflejo, ya que utiliza el software existente del hipervisor y también permite usar SQL Server Express Edition. No obstante, el proceso automático de conmutación por error es más lento ya que es posible que una máquina nueva tarde mucho en iniciar la base de datos, lo que puede interrumpir el servicio a los usuarios.

La función Caché de host local complementa las prácticas recomendadas de alta disponibilidad de SQL Server porque permite a los usuarios conectarse varias veces a los últimos escritorios y aplicaciones que han utilizado, incluso cuando la base de datos del sitio no está disponible. Para obtener más información, consulte Caché de host local.

Si se producen fallos en todos los Delivery Controllers de un sitio, es posible configurar los agentes VDA de modo que funcionen en el modo de alta disponibilidad y, así, los usuarios puedan seguir accediendo y utilizando sus escritorios y aplicaciones. En el modo de alta disponibilidad, el VDA acepta conexiones ICA directas de los usuarios en lugar de conexiones con el Controller como intermediario (broker). Esta función solo debe utilizarse en el caso poco corriente de que falle la comunicación con todos los Controllers; no es una alternativa a otras soluciones de alta disponibilidad. Para obtener más información, consulte CTX 127564.

Nota

No se respalda la instalación de Controller en un nodo de clúster de SQL o de instalación duplicada (mirroring) de SQL.

Instalar software de base de datos

De forma predeterminada y si no se detecta ninguna otra instancia de SQL Server en ese servidor, se instala SQL Server Express Edition al instalar el primer Delivery Controller. Por regla general, esa acción predeterminada es suficiente para implementaciones piloto o de prueba de concepto. Sin embargo, SQL Server Express no admite las funciones de alta disponibilidad de Microsoft.

La instalación predeterminada usa las cuentas y los permisos predeterminados del servicio de Windows. Consulte la documentación de Microsoft para ver información detallada de estos valores predeterminados, incluida la incorporación de cuentas de servicio Windows en el rol de sysadmin. Controller usa la cuenta de Servicio de red en esta configuración. Controller no necesita permisos ni roles adicionales de SQL Server.

Si es necesario, puede seleccionarOcultar instancia para la instancia de la base de datos. Al configurar la dirección de la base de datos en Studio, introduzca el número de puerto estático de la instancia, en lugar de su nombre. Consulte la documentación de Microsoft para obtener información más detallada sobre cómo ocultar una instancia del motor de base de datos de SQL Server.

Por lo tanto, la mayoría de las implementaciones de producción y cualquier implementación que use funciones de alta disponibilidad de Microsoft, debe instalar otras ediciones de SQL Server admitidas (que no sean Express) en máquinas que no sean el servidor donde está instalado el primer Controller. En el artículo Requisitos del sistema, se ofrece una lista de las versiones admitidas de SQL Server. Las bases de datos pueden residir en una o varias máquinas.

Antes de crear un sitio, compruebe que el software de SQL Server está instalado. No es necesario crear la base de datos pero, si la crea, debe estar vacía. También se recomienda configurar las tecnologías de alta disponibilidad de Microsoft.

Use Windows Update para mantener SQL Server actualizado.

Configurar bases de datos desde el asistente para la creación de sitios

Especifique los nombres de las bases de datos y sus direcciones (ubicación) en la página Bases de datos del asistente para la creación de sitios; consulte más adelante los formatos de direcciones de bases de datos. Para evitar posibles errores cuando Director consulte Monitor Service, no use espacios en blanco en el nombre de la base de datos de supervisión.

La página Bases de datos ofrece dos opciones para configurar bases de datos: automáticamente o mediante scripts. Por lo general, se puede usar la opción automática si usted (como usuario de Studio y administrador Citrix) tiene los privilegios de base de datos pertinentes; consulte más adelante el apartado Permisos necesarios para configurar bases de datos.

Después de crear el sitio, puede cambiar la ubicación de una base de datos. Para ello, consulte el apartado Cambiar ubicaciones de bases de datos que se muestra más adelante.

Para que un sitio utilice una base de datos reflejada, complete lo siguiente y continúe con el procedimiento de configuración automática o por script.

  1. Instale el software de SQL Server en dos servidores, A y B.
  2. En el servidor A, cree la base de datos que se utilizará como principal. Haga una copia de seguridad de la base de datos ubicada en el servidor A y, a continuación, cópiela al servidor B.
  3. En el servidor B, restaure el archivo de copia de seguridad.
  4. Inicie la creación de reflejo en el servidor A.

Para verificar la creación de la base de datos reflejada después de crear el sitio, ejecute el cmdlet get-configdbconnection de PowerShell para comprobar que el asociado de conmutación por error se ha definido en la cadena de conexión a la base de datos reflejada.

Si más adelante quiere agregar, mover o quitar un Delivery Controller de un entorno de base de datos reflejada, consulte el artículo de Delivery Controllers.

Configuración automática

Si tiene los privilegios de base de datos necesarios, seleccione la opción “Crear y configurar bases de datos desde Studio” en la página Bases de datos del asistente para la creación de sitios. A continuación, especifique los nombres y las direcciones de las bases de datos principales.

Si ya existe una base de datos en una dirección que especifique, esta debe estar vacía. Si no existen bases de datos en la dirección especificada, se le informa que no se ha podido encontrar ninguna base de datos y se le solicita crear una. Tras confirmar esa acción, Studio crea automáticamente las bases de datos y aplica los scripts de inicialización a las bases de datos principales y de réplica.

Configuración por script

Si no tiene los privilegios necesarios de bases de datos, deberá pedir ayuda a alguien con esos privilegios, como a un administrador de base de datos. Aquí se presenta el orden de pasos a seguir:

  1. En el asistente para la creación de sitios, seleccione la opción Generar scripts. Esta acción genera seis scripts: dos para cada una de las tres bases de datos (una para cada base de datos principal y otra para cada réplica). Puede indicar dónde almacenar los scripts.
  2. Facilite esos scripts al administrador de base de datos. El asistente para la creación de sitios se detiene automáticamente en este punto y se le pedirá continuar con la creación de sitios cuando vuelva de nuevo al asistente.

El administrador de base de datos crea la base de datos. Cada base de datos debe tener las siguientes características:

  • Usar una intercalación que termine con “_CI_AS_KS”. Citrix recomienda usar una intercalación que termine con “_100_CI_AS_KS”.
  • Para un rendimiento óptimo, habilite la instantánea de lectura confirmada de SQL Server. Para obtener más información, consulte CTX 137161.
  • Si quiere usar las funciones de alta disponibilidad, deberá configurarlas.
  • Para configurar la creación de reflejo, primero debe configurar la base de datos para que use el modelo de recuperación completa (a diferencia del modelo simple, que es el valor predeterminado). Haga una copia de seguridad de la base de datos principal en un archivo y cópielo al servidor reflejado. En la base de datos reflejada, restaure el archivo de copia de seguridad para el servidor reflejado. A continuación, inicie la creación de reflejo en el servidor principal.

El administrador de base de datos usa la herramienta de línea de comandos SQLCMD o SQL Server Management Studio en modo SQLCMD para ejecutar cada script de xxx_Replica.sql en las instancias de alta disponibilidad de base de datos de SQL Server (si se ha configurado la alta disponibilidad) y para ejecutar luego cada script de xxx_Principal.sql en las instancias de base de datos principal de SQL Server. Consulte la documentación de Microsoft para obtener información más detallada acerca de SQLCMD.

Cuando todos los scripts finalizan correctamente, el administrador de base de datos facilita al administrador Citrix las tres direcciones de bases de datos principales.

En Studio, se le solicitará continuar con la creación de sitios y se volverá a la página Bases de datos. Escriba las direcciones. Si no se puede establecer contacto con alguno de los servidores que alojan una base de datos, aparecerá un mensaje de error.

Permisos necesarios para configurar bases de datos

Debe ser un administrador local y un usuario de dominio para crear e inicializar bases de datos (o cambiar la ubicación de estas). También debe tener ciertos permisos de SQL Server. Los siguientes permisos se pueden configurar explícitamente o se pueden adquirir por la pertenencia a grupos de Active Directory. Si las credenciales de usuario de Studio no incluyen estos permisos, se le solicitarán las credenciales de usuario de SQL Server.

Operación Propósito Rol del servidor Rol de la base de datos
Crear una base de datos Crear una base de datos vacía adecuada dbcreator  
Crear un esquema Crear los esquemas de cada servicio y agregar el primer Controller al sitio securityadmin* db_owner
Agregar un Controller Agregar un Controller (además del primero) al sitio securityadmin* db_owner
Agregar un Controller (servidor reflejado) Agregar un inicio de sesión de Controller al servidor de la base de datos que se encuentra actualmente en el rol de reflejo de la base de datos reflejada securityadmin*  
Actualizar un esquema Aplicar revisiones hotfix o actualizaciones a los esquemas   db_owner

* Aunque sea técnicamente más restrictivo, en la práctica, el rol de servidor securityadmin debe tratarse como equivalente al rol de servidor sysadmin.

Cuando se utiliza Studio para realizar estas operaciones, la cuenta de usuario debe formar parte del rol de servidor sysadmin.

Formatos de direcciones de bases de datos

Puede especificar una dirección de base de datos de una de las siguientes formas:

  • NombreServidor
  • NombreServidor\NombreInstancia
  • NombreServidor,NúmeroPuerto

Para un grupo de disponibilidad AlwaysOn, especifique el servidor de escucha del grupo en el campo de ubicación.

Cambiar ubicaciones de base de datos

Después de crear un sitio, se puede cambiar la ubicación de las bases de datos. Cuando se cambia la ubicación de una base de datos:

  • Los datos de la base de datos anterior no se importarán en la nueva base de datos.
  • Los registros no pueden combinarse desde ambas bases de datos al consultarlos.
  • La primera entrada del registro en la nueva base de datos indica que se ha producido un cambio en la base de datos, pero no identifica la base de datos anterior.

No es posible cambiar la ubicación de la base de datos de registros de configuración cuando está habilitado el registro obligatorio.

Para cambiar la ubicación de una base de datos:

  1. Compruebe que haya instalada una versión admitida de Microsoft SQL Server en el servidor donde residirá la base de datos. Configure las funciones de alta disponibilidad, si fuera necesario.
  2. Seleccione Configuración en el panel de navegación de Studio.
  3. Seleccione la base de datos para la que quiere especificar una nueva ubicación y, a continuación, seleccione Cambiar base de datos en el panel Acciones.
  4. Especifique la nueva ubicación y el nombre de la base de datos.
  5. Si quiere que Studio cree la base de datos y si tiene los permisos adecuados, haga clic en Aceptar. Cuando se le solicite, haga clic en Aceptar y Studio creará automáticamente la base de datos. Studio intenta acceder a la base de datos usando sus credenciales; si eso falla, se le pedirán las credenciales del usuario de la base de datos. Studio carga el esquema de base de datos en la base de datos. Las credenciales se conservan solo durante el periodo de creación de la base de datos.
  6. Si no quiere que Studio cree la base de datos o no dispone de los permisos necesarios, haga clic en Generar script. Los scripts generados incluyen instrucciones para crear manualmente la base de datos y una base de datos reflejada, si es necesario. Antes de cargar el esquema, compruebe que la base de datos está vacía y de que al menos un usuario tiene permiso para acceder a ella y cambiarla.

Para obtener más información