Product Documentation

Tolerancia de fallos de base de datos

Nov 11, 2015

En este tema se describen las maneras en que se puede aumentar el nivel de tolerancia de fallos en una implementación para garantizar que las aplicaciones y los escritorios fundamentales para la empresa estén siempre disponibles.

Nota: Para obtener más información sobre cómo configurar el agente Virtual Delivery Agent (VDA) para que funcione en el modo de alta disponibilidad, consulte Cómo garantizar el acceso a escritorios y aplicaciones si falla Delivery Controller.

Configuración de la tolerancia de fallos de la base de datos

Toda la información se almacena en la base de datos de configuración de sitios; los Controllers se comunican solamente con la base de datos y no entre ellos. 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 de configuración de sitios representa un único punto de fallo. Si el servidor de base de datos falla, las conexiones existentes con los escritorios virtuales permanecen activas hasta que el usuario cierra sesión o se desconecta del escritorio virtual; las nuevas conexiones no se pueden establecer si el servidor de la base datos no está disponible.

Citrix recomienda realizar una copia de seguridad de la base de datos regularmente para poder restaurarla a partir de esa copia si el servidor de base de datos falla. Además, existen otras soluciones de alta disponibilidad que es conveniente tener en cuenta para garantizar la conmutación por error automática:

  • Creación de reflejo de SQL. Esta es la solución recomendada. 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 para un entorno reflejado.
  • Con las funciones de alta disponibilidad del hipervisor, usted implementa la base de datos como una máquina virtual y utiliza las funciones de alta disponibilidad del hipervisor. Esta solución es menos costosa que la creación de una base de datos reflejada, ya que utiliza el software existente del host y también permite usar SQL Express. 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 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.
  • Los grupos de disponibilidad AlwaysOn son una solución de alta disponibilidad y recuperación ante desastres para empresas introducida en SQL Server 2012 para permitirle maximizar la disponibilidad de una o más bases de datos de usuario. 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 Grupos de disponibilidad AlwaysOn (SQL Server).
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.

Para configurar un sitio para que utilice una base de datos reflejada

El proceso de configuración incluye tareas que un administrador completa mediante las herramientas de administración de SQL Server antes de crear el sitio de Citrix. Las tareas restantes se producen cuando el administrador Citrix ejecuta el asistente para la creación de sitios.

Un entorno reflejado requiere al menos dos máquinas de SQL Server (por ejemplo, SQL Server A y B). SQL Server Express Edition no se puede usar como base de datos principal ni reflejada.

Con las herramientas de administración de Microsoft SQL Server, configure las bases de datos de SQL Server:

  1. Instale el software de SQL Server en SQL Server A y SQL Server B.
  2. En SQL Server A, cree la base de datos que se utilizará como principal (por ejemplo, myDatabaseMirror).

    Asegúrese de que la base de datos usa el modelo de recuperación completa y no el modelo simple. (El modelo simple está configurado de forma predeterminada, pero impide la copia de seguridad del registro de transacciones.)

    Compruebe que la secuencia de intercalación termina en _CI_AS_KS (es decir, no distingue entre mayúsculas y minúsculas, distingue acentos y distingue tipos de kana).

    Habilite una instantánea Read-Committed como se describe en Cómo habilitar la instantánea Read-Committed en XenDesktop. Para evitar posibles errores, es importante habilitarla antes de reflejar la base de datos.

  3. En el SQL Server A, haga una copia de seguridad de la base de datos en un archivo y cópielo al SQL Server B.
  4. En el SQL Server B, restaure el archivo de copia de seguridad en ese servidor (SQL Server B).
  5. En el SQL Server A, inicie el reflejo.

El siguiente paso depende de si el administrador Citrix (es decir, la persona que ejecuta el asistente para la creación de sitios) también tiene privilegios completos de base de datos:

  • Si el administrador Citrix tiene privilegios de base de datos (el administrador de la base de datos y el administrador Citrix son la misma persona), Studio lleva a cabo todas las acciones:
    1. El administrador Citrix utiliza Studio para crear un sitio y especifica la dirección de la base de datos de SQL Server A creada anteriormente y su nombre (myDatabaseMirrorForXD).
    2. Los scripts de la base de datos se aplican automáticamente y se establecen la base de datos principal y la reflejada.
  • Si el administrador Citrix no tiene privilegios de base de datos, debe obtener ayuda de un administrador de base de datos:
    1. El administrador Citrix utiliza Studio para crear un sitio y especifica la dirección de la base de datos de SQL Server creada anteriormente y su nombre (myDatabaseMirrorForXD).
    2. En el asistente para la creación de sitios, si hace clic en Generar script, se genera un script reflejo y un script principal. El administrador Citrix proporciona los scripts al administrador de la base de datos, que aplica los scripts (el script reflejo se debe aplicar primero). El administrador de base de datos debe informar al administrador Citrix cuando la tarea se haya completado.
    3. De nuevo en Studio, el administrador Citrix puede continuar y completar el proceso del asistente para la creación de sitios. Se establecen la base de datos principal y la reflejada.

Para verificar la creación de la base de datos reflejada después de crear el sitio, ejecute el cmdlet de PowerShell get-configdbconnection para comprobar que el asociado de conmutación por error se ha definido en la cadena de conexión para 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 Agregar, quitar o mover Controllers para cuestiones a tener en cuenta.