Bases de datos
Un sitio de Citrix Virtual Apps o Citrix Virtual Desktops™ utiliza tres bases de datos de SQL Server:
- Sitio: (también conocida como configuración del sitio) almacena la configuración del sitio en ejecución, además del estado actual de la sesión y la información de conexión.
- Registro de configuración: (también conocido como registro) almacena información sobre los cambios de configuración del sitio y las actividades administrativas. Esta base de datos se utiliza cuando la función de registro de configuración está habilitada (predeterminado = habilitado).
- Supervisión: almacena los datos utilizados por Director, como la información de sesión y conexión.
Cada Delivery Controller se comunica con la base de datos del sitio. Se requiere autenticación de Windows entre el Controller y las bases de datos. Un Controller se puede desconectar o apagar sin afectar a otros Controllers del sitio. Esto significa, sin embargo, que la base de datos del sitio constituye un único punto de fallo. Si el servidor de la base de datos falla, las conexiones existentes seguirán funcionando hasta que un usuario cierre la sesión o se desconecte. Para obtener información sobre el comportamiento de la conexión cuando la base de datos del sitio no está disponible, consulte Caché de host local.
Citrix recomienda hacer copias de seguridad de las bases de datos con regularidad para poder restaurarlas desde la copia de seguridad si el servidor de la base de datos falla. La estrategia de copia de seguridad para cada base de datos puede variar. Para obtener instrucciones, consulte CTX135207.
Si su sitio contiene más de una zona, asegúrese de que la zona principal siempre contenga la base de datos del sitio. Los Controllers de cada zona se comunican con esa base de datos.
Alta disponibilidad
Existen varias soluciones de alta disponibilidad a considerar para garantizar la conmutación por error automática:
- Grupos de disponibilidad AlwaysOn (incluidos los grupos de disponibilidad básicos): Esta solución de alta disponibilidad y recuperación ante desastres de nivel empresarial, introducida en SQL Server 2012, le 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 nodos de clúster de conmutación por error de Windows Server (WSFC). Para obtener más información, consulte Clúster de conmutación por error de Windows Server con SQL Server.
- Duplicación de bases de datos de SQL Server: La duplicación de la base de datos garantiza que, si pierde el servidor de base de datos activo, se produce un proceso de conmutación por error automático en cuestión de segundos, de modo que los usuarios no se ven afectados en general. Este método es más caro que otras soluciones porque se requieren licencias completas de SQL Server en cada servidor de base de datos. No se puede utilizar SQL Server Express Edition en un entorno duplicado.
- Agrupación en clústeres de SQL: La tecnología de agrupación en clústeres de Microsoft SQL se puede utilizar para permitir automáticamente que un servidor asuma las tareas y responsabilidades de otro servidor que ha fallado. Sin embargo, configurar esta solución es más complicado y el proceso de conmutación por error automático suele ser más lento que alternativas como la duplicación de SQL.
- Uso de las funciones de alta disponibilidad del hipervisor: Con este método, se implementa la base de datos como una máquina virtual y se utilizan las funciones de alta disponibilidad del hipervisor. Esta solución es menos costosa que la duplicación porque utiliza el software de hipervisor existente y también se puede utilizar SQL Server Express Edition. Sin embargo, el proceso de conmutación por error automático es más lento, ya que puede llevar tiempo que una nueva máquina se inicie para la base de datos, lo que podría interrumpir el servicio a los usuarios.
La función Caché de host local complementa las prácticas recomendadas de alta disponibilidad de SQL Server. La Caché de host local permite a los usuarios conectarse y volver a conectarse a aplicaciones y escritorios incluso cuando la base de datos del sitio no está disponible. Para obtener más información, consulte Caché de host local.
Si todos los Controllers de un sitio fallan, puede configurar los VDA para que funcionen en modo de alta disponibilidad, lo que permite a los usuarios seguir accediendo a sus escritorios y aplicaciones. En el modo de alta disponibilidad, el VDA acepta conexiones ICA directas de los usuarios, en lugar de conexiones intermediadas por el Controller. Utilice esta función solo en la rara ocasión en que falle la comunicación con todos los Controllers. Esta función no es una alternativa a otras soluciones de alta disponibilidad. Para obtener más información, consulte CTX 127564.
No se admite la instalación de un Controller en un nodo en una instalación de clúster de SQL o de creación de reflejo de SQL.
Instalar el software de base de datos
De forma predeterminada, la edición SQL Server Express se instala al instalar el primer Delivery Controller™ si no se detecta otra instancia de SQL Server en ese servidor. Esa acción predeterminada suele ser suficiente para pruebas de concepto o implementaciones piloto. Sin embargo, SQL Server Express no admite las funciones de alta disponibilidad de Microsoft.
La instalación predeterminada utiliza las cuentas de servicio y los permisos predeterminados de Windows. Consulte la documentación de Microsoft para obtener detalles sobre estos valores predeterminados, incluida la adición de cuentas de servicio de Windows al rol de sysadmin. El Controller utiliza la cuenta de servicio de red en esta configuración. El Controller no requiere ningún rol o permiso adicional de SQL Server.
Si es necesario, puede seleccionar Ocultar instancia para la instancia de 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 detalles sobre cómo ocultar una instancia de SQL Server Database Engine.
Para la mayoría de las implementaciones de producción y cualquier implementación que utilice funciones de alta disponibilidad de Microsoft, recomendamos usar solo ediciones de SQL Server compatibles que no sean Express. Instale SQL Server en máquinas distintas del servidor donde está instalado el primer Controller. Requisitos del sistema enumera las versiones de SQL Server compatibles. Las bases de datos pueden residir en una o varias máquinas.
Asegúrese de que el software de SQL Server esté instalado antes de crear un sitio. No es necesario crear la base de datos, pero si lo hace, 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 las bases de datos desde el asistente de creación de sitios
Especifique los nombres y las direcciones (ubicación) de las bases de datos en la página Bases de datos del asistente de creación de sitios. (Consulte Formatos de dirección de base de datos.) Para evitar posibles errores cuando Director consulta el servicio Monitor, no utilice 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 las bases de datos: automática y mediante scripts. Por lo general, puede usar la opción automática si usted (el usuario de Studio y el administrador de Citrix®) tiene los privilegios de base de datos necesarios. (Consulte Permisos necesarios para configurar bases de datos.)
Puede cambiar la ubicación de la base de datos de registro de configuración y supervisión más tarde, después de crear el sitio. Consulte Cambiar ubicaciones de bases de datos.
Para configurar un sitio para usar una base de datos reflejada, complete lo siguiente y luego continúe con los procedimientos de configuración automática o mediante scripts.
- Instale el software de SQL Server en dos servidores, A y B.
- En el Servidor A, cree la base de datos que se utilizará como principal. Realice una copia de seguridad de la base de datos en el Servidor A y, a continuación, cópiela en el servidor B.
- En el Servidor B, restaure el archivo de copia de seguridad.
- Inicie la creación de reflejos en el servidor A.
Para verificar la creación de reflejos después de crear el sitio, ejecute el cmdlet de PowerShell get-configdbconnection para asegurarse de que el socio de conmutación por error se haya establecido en la cadena de conexión al reflejo.
Si más adelante agrega, mueve o quita un Delivery Controller en un entorno de base de datos reflejada, consulte Delivery Controllers.
Configuración automática
Si tiene los privilegios de base de datos necesarios, seleccione Crear y configurar bases de datos desde Studio en la página Bases de datos del asistente de creación de sitios. A continuación, proporcione los nombres y las direcciones de las bases de datos principales.
Si existe una base de datos en una dirección que especifique, debe estar vacía. Si no existen bases de datos en una dirección especificada, se le informará de que no se puede encontrar una base de datos y, a continuación, se le preguntará si desea que se cree la base de datos. Cuando confirme esa acción, Studio creará automáticamente las bases de datos y, a continuación, aplicará los scripts de inicialización para las bases de datos principal y de réplica.
Configuración mediante scripts
Si no tiene los derechos de base de datos necesarios, solicite ayuda a alguien que los tenga, como un administrador de bases de datos. Esta es la secuencia:
-
En la página Bases de datos del asistente de creación de sitios, seleccione Generar scripts para configurar manualmente. Esta acción genera los tres tipos de scripts siguientes para cada una de las bases de datos principal y de réplica siguientes: bases de datos de sitio, de supervisión y de registro.
- Script que contiene “SysAdmin” en su nombre. Un script que crea las bases de datos y el inicio de sesión de Delivery Controller. Estas tareas requieren derechos de securityadmin.
-
Script que contiene “DbOwner” en su nombre. Un script que crea los roles de usuario en la base de datos, agrega los inicios de sesión y, a continuación, crea los esquemas de la base de datos. Estas tareas requieren derechos
db_owner. - Script que contiene “Mixed” en su nombre. Todas las tareas en un solo script, independientemente de los derechos requeridos.
Puede indicar dónde almacenar los scripts.
Nota:
En entornos empresariales, la configuración de la base de datos incluye scripts que pueden ser gestionados por diferentes equipos con diferentes roles (derechos):
securityadminodb_owner. Si procede, primero se ejecutan scripts de “SysAdmin” por administradores con el rolsecurityadminy luego scripts de “DbOwner” por administradores con derechosdb_owner. Para generar esos scripts, también puede usar PowerShell. Para obtener más información, consulte Scripts de derechos de base de datos preferidos. -
Entregue esos scripts a su administrador de bases de datos. El asistente de creación de sitios se detiene automáticamente en este punto. Se le pedirá que continúe con la creación del sitio cuando regrese más tarde.
El administrador de bases de datos crea entonces las bases de datos. Cada base de datos debe tener las siguientes características:
- Utilice una intercalación que termine en
_CI_AS_KS. Recomendamos usar una intercalación que termine en_100_CI_AS_KS. - Para un rendimiento óptimo, habilite la instantánea de lectura confirmada de SQL Server (Read-Committed Snapshot). Para obtener más información, consulte CTX 137161.
- Funciones de alta disponibilidad configuradas, si procede.
- Para configurar la duplicación, primero configure la base de datos para que utilice el modelo de recuperación completa (el modelo simple es el predeterminado). Realice una copia de seguridad de la base de datos principal en un archivo y cópiela al servidor reflejado. Luego, restaure el archivo de copia de seguridad en el servidor reflejado. Finalmente, inicie la duplicación en el servidor principal.
El administrador de bases de datos utiliza la utilidad de línea de comandos SQLCMD o SQL Server Management Studio en modo SQLCMD para:
- Ejecutar cada uno de los scripts
xxx_Replica.sqlen las instancias de base de datos de SQL Server de alta disponibilidad (si la alta disponibilidad está configurada) - Ejecutar cada uno de los scripts
xxx\_Principal.sqlen las instancias de base de datos principal de SQL Server.
Consulte la documentación de Microsoft para obtener detalles sobre SQLCMD.
Cuando todos los scripts se completen correctamente, el administrador de bases de datos entregará al administrador de Citrix las tres direcciones de las bases de datos principales.
Studio le pedirá que continúe con la creación del sitio. Volverá a la página Bases de datos. Introduzca las direcciones. Si no se puede contactar 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 las bases de datos (o cambiar la ubicación de la base de datos). También debe tener ciertos permisos de SQL Server. Los siguientes permisos se pueden configurar explícitamente o adquirir mediante la pertenencia a un grupo de Active Directory. Si sus 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 de servidor | Rol de base de datos |
|---|---|---|---|
| Crear una base de datos | Crear una base de datos vacía adecuada | dbcreator |
|
| Crear un esquema | Crear todos los esquemas específicos del servicio y agregar el primer Controller al sitio |
securityadmin* |
db_owner |
| Agregar un Controller | Agregar un Controller (que no sea el primero) al sitio |
securityadmin* |
db_owner |
| Añadir un Controller (servidor espejo) | Añadir un inicio de sesión de Controller al servidor de bases de datos que actualmente tiene el rol de espejo en una base de datos reflejada |
securityadmin* |
|
| Quitar Controller | Quitar Controller del sitio | ** | db_owner |
| Actualizar un esquema | Aplicar actualizaciones de esquema o revisiones | db_owner |
* Aunque técnicamente es más restrictivo, en la práctica, puede tratar el rol de servidor securityadmin como equivalente al rol de servidor sysadmin.
** Cuando se quita un Controller de un sitio, ya sea a través de Studio o mediante scripts generados por Studio o el SDK, el inicio de sesión del Controller en el servidor de bases de datos no se elimina. Esto es para evitar la posible eliminación de un inicio de sesión que esté siendo utilizado por otros servicios distintos de este producto de Citrix en la misma máquina. El inicio de sesión debe eliminarse manualmente si ya no es necesario. Esta acción requiere la pertenencia al rol de servidor securityadmin.
Al usar Studio para realizar estas operaciones, el usuario de Studio debe tener una cuenta de servidor de bases de datos que sea explícitamente miembro de los roles de servidor apropiados, o poder proporcionar las credenciales de una cuenta que lo sea.
Scripts de derechos de base de datos preferidos
En entornos empresariales, la configuración de la base de datos incluye scripts que deben ser gestionados por diferentes equipos con diferentes roles (derechos): securityadmin o db_owner.
Con PowerShell, puede especificar los derechos de base de datos preferidos. Si se especifica un valor no predeterminado, se crean scripts separados. Un script contiene tareas que necesitan el rol securityadmin. El otro script solo requiere derechos db_owner y puede ser ejecutado por un administrador de Citrix, sin tener que contactar con un administrador de bases de datos.
En los cmdlets get-*DBSchema, la opción -DatabaseRights tiene los siguientes valores válidos:
-
SA: Genera un script que crea las bases de datos y el inicio de sesión de Delivery Controller. Estas tareas requieren derechossecurityadmin. -
DBO: Genera un script que crea los roles de usuario en la base de datos, añade los inicios de sesión y, a continuación, crea los esquemas de la base de datos. Estas tareas requieren derechosdb_owner. -
Mixed: (Predeterminado) Todas las tareas en un solo script, independientemente de los derechos requeridos.
Para obtener más información, consulte la ayuda del cmdlet.
Formatos de dirección de base de datos
Puede especificar una dirección de base de datos de una de las siguientes formas:
ServerNameServerName\InstanceNameServerName,PortNumber
Para un grupo de disponibilidad AlwaysOn, especifique el agente de escucha del grupo en el campo de ubicación.
Cambiar ubicaciones de bases de datos
Después de crear un sitio, puede cambiar la ubicación de las bases de datos de registro de configuración y de supervisión. (No se puede cambiar la ubicación de la base de datos del sitio). Al cambiar la ubicación de una base de datos:
- Los datos de la base de datos anterior no se importan a la nueva base de datos.
- Los registros no se pueden agregar de ambas bases de datos al recuperarlos.
- La primera entrada de registro en la nueva base de datos indica que se produjo un cambio en la base de datos, pero no identifica la base de datos anterior.
No puede cambiar la ubicación de la base de datos de registro de configuración cuando el registro obligatorio está habilitado.
Para cambiar la ubicación de una base de datos:
- Asegúrese de que una versión compatible de Microsoft SQL Server esté instalada en el servidor donde desea que resida la base de datos. Configure las funciones de alta disponibilidad según sea necesario.
- Seleccione Configuración en el panel de navegación de Studio.
- Seleccione la base de datos para la que desea especificar una nueva ubicación y, a continuación, seleccione Cambiar base de datos en el panel Acciones.
- Especifique la nueva ubicación y el nombre de la base de datos.
- Si desea que Studio cree la base de datos y tiene los permisos adecuados, haga clic en Aceptar. Cuando se le solicite, haga clic en Aceptar, y Studio la creará automáticamente. Studio intenta acceder a la base de datos utilizando sus credenciales. Si eso falla, se le pedirán las credenciales del usuario de la base de datos. A continuación, Studio carga el esquema de la base de datos en ella. Las credenciales se conservan solo durante el período de creación de la base de datos.
- Si no desea que Studio cree la base de datos, o no tiene permisos suficientes, haga clic en Generar script. Los scripts generados incluyen instrucciones para crear manualmente la base de datos y una base de datos espejo, si es necesario. Antes de cargar el esquema, asegúrese de que la base de datos esté vacía y de que al menos un usuario tenga permiso para acceder y cambiar la base de datos.
Más información
- Herramienta de dimensionamiento de bases de datos.
- Dimensionamiento de la base de datos del sitio y configuración de cadenas de conexión al utilizar soluciones de alta disponibilidad de SQL Server.