Bases de datos
Un sitio de Citrix Virtual Apps o Citrix Virtual Desktops usa 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. Se requiere 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 seguridad para cada base de datos puede ser distinta. Para obtener instrucciones, consulte CTX135207.
Si el sitio contiene más de una zona, la zona principal siempre debe contener la base de datos del sitio. 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 Clústeres de conmutación por error de Windows Server con SQL Server.
- Crear imágenes 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. Este método es más costoso que las otras dos soluciones debido a que se requieren licencias de SQL Server completas en cada servidor de la base de datos. No se puede usar la edición 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 para alta disponibilidad de SQL Server. La Caché de host local permite a los usuarios conectarse y reconectarse con las aplicaciones y los escritorios 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 a sus escritorios y aplicaciones y utilizándolos. 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). Utilice esta función solo en las raras ocasiones en que falle la comunicación con todos los Controllers. La 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 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. Normalmente, esa acción predeterminada es suficiente para implementaciones piloto o de pruebas de concepto. Sin embargo, SQL Server Express no admite 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 seleccionar Ocultar 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, para la mayoría de las implementaciones de producción y cualquier implementación que use funciones de alta disponibilidad de Microsoft, se recomienda utilizar solo ediciones de SQL Server admitidas (que no sean Express). Instale SQL Server en equipos distintos del servidor donde está instalado el primer Controller. En 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 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, 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 Permisos necesarios para configurar bases de datos.)
Puede cambiar la ubicación de la base de datos de registros de configuración y supervisión más adelante, después de crear el sitio. Consulte Cambiar ubicaciones de base de datos.
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.
- 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. Haga una copia de seguridad de la base de datos ubicada en el servidor A y, a continuación, cópiela al servidor B.
- En el servidor B, restaure el archivo de copia de seguridad.
- 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 asegurarse de que el socio 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 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 dispone de los derechos necesarios para las bases de datos, solicite ayuda a alguien que los tenga, como un administrador de bases de datos. Aquí se presenta el orden de pasos a seguir:
-
En la página Bases de datos del asistente para la creación de sitios, seleccione la opción Generar scripts para configurar bases de datos manualmente. Esta acción genera los siguientes tres tipos de scripts para cada una de las siguientes bases de datos principales y de réplica: bases de datos de sitios, supervisión y registros.
- Script que contiene “SysAdmin” en el nombre. Un script que crea las bases de datos y las credenciales de Delivery Controller. Estas tareas requieren derechos de tipo “securityadmin”.
-
Script que contiene “DbOwner” en el nombre. Un script que crea los roles de usuario en la base de datos, agrega las credenciales y, a continuación, crea los esquemas de la base de datos. Estas tareas requieren derechos del tipo
db_owner
. - Script que contiene “Mixed” en el nombre. Todas las tareas en un script, independientemente de los derechos necesarios.
Puede indicar dónde almacenar los scripts.
Nota:
En entornos empresariales, la configuración de la base de datos incluye scripts que pueden gestionar diferentes equipos de personas con diferentes roles (derechos):
securityadmin
odb_owner
. Si corresponde, primero tiene scripts de tipo “SysAdmin” ejecutados por administradores con el rolsecurityadmin
y, a continuación, scripts “DbOwner” ejecutados por administradores con derechos de tipodb_owner
. Para generar esos scripts, también puede utilizar PowerShell. Para obtener más información, consulte Scripts de derechos preferidos sobre bases de datos. -
Facilite esos scripts al administrador de base de datos. El asistente para la creación de sitios se detiene automáticamente en este punto. Cuando regrese más tarde, se le pedirá que continúe la creación del sitio.
El administrador de base de datos crea la base de datos. Cada base de datos debe tener las siguientes funciones:
- Usar una intercalación que termine con
_CI_AS_KS
. Se 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.
- Funciones de alta disponibilidad configuradas, si procede.
- 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. A continuación, restaure el archivo de copia de seguridad en el servidor reflejado. Por último, inicie la creación de reflejo en el servidor principal.
El Administrador de base de datos utiliza la línea de comandos de SQLCMD o SQL Server Management Studio en modo SQLCMD para:
- Ejecutar cada uno de los scripts de
xxx_Replica.sql
en las instancias de base de datos de alta disponibilidad de SQL Server (si está configurada la opción de alta disponibilidad) - Ejecutar cada uno de los scripts de
xxx\_Principal.sql
en las instancias de base de datos principales 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.
Studio le preguntará si quiere continuar con la creación del sitio. Volverá a aparecer 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 |
|
Crea un esquema | Crear los esquemas de cada servicio y agregar el primer Controller al sitio |
securityadmin * |
db_owner |
Agregar un Controller | Agregar un Controller (aparte 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 * |
|
Quitar Controller | Quitar Controller del sitio | ** | db_owner |
Actualizar un esquema | Aplicar parches rápidos o actualizaciones a los esquemas | db_owner |
* Aunque técnicamente sea más restrictivo, en la práctica, puede tratar el rol securityadmin
de servidor como equivalente al rol sysadmin
de servidor.
** Cuando se quita un Controller de un sitio, ya sea a través de Desktop Studio o mediante los scripts generados por Studio o SDK, no se quita el inicio de sesión del Controller en el servidor de base de datos. De esta forma, se evita el riesgo potencial de quitar un inicio de sesión que utilizan otros servicios en la misma máquina. Si ya no es necesario, el inicio de sesión debe quitarse manualmente. Esta acción requiere la pertenencia a un rol securityadmin
de servidor.
Cuando utilice Studio para realizar estas operaciones, el usuario de Studio debe tener una cuenta de servidor de base de datos que sea explícitamente miembro de los roles de servidor adecuados, o bien, debe poder proporcionar credenciales de una cuenta que lo sea.
Scripts de derechos preferidos sobre bases de datos
En entornos empresariales, la configuración de la base de datos incluye scripts que deben gestionarse por diferentes equipos de personas con diferentes roles (derechos): securityadmin
o db_owner
.
Con PowerShell, puede especificar los derechos preferidos sobre bases de datos. Si se especifica un valor no predeterminado, se crearán scripts independientes. Un script contiene tareas que requieren el rol securityadmin
. El otro script requiere solamente los derechos de tipo db_owner
, y lo puede ejecutar 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 las credenciales de Delivery Controller. Estas tareas requieren derechos del tiposecurityadmin
. -
DBO
: Genera un script que crea los roles de usuario en la base de datos, agrega las credenciales y, a continuación, crea los esquemas de la base de datos. Estas tareas requieren derechos del tipodb_owner
. -
Mixed
(predeterminado): Todas las tareas en un script, independientemente de los derechos necesarios.
Para obtener más información, consulte la ayuda de los cmdlets.
Formatos de direcciones de bases de datos
Puede especificar una dirección de base de datos de una de las siguientes formas:
ServerName
ServerName\InstanceName
ServerName,PortNumber
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, puede cambiar la ubicación de las bases de datos de registros de configuración y 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 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:
- 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.
- Seleccione Configuración en el panel de navegación de Studio.
- 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.
- Especifique la nueva ubicación y el nombre de la base de datos.
- 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 mediante las credenciales. Si no puede, el sistema pedirá 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 período de creación de la base de datos.
- 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.
Más información
- Herramienta para calcular el tamaño de la base de datos.
- Establecer el tamaño de la base de datos del sitio y configurar las cadenas de conexión cuando se utilizan soluciones de alta disponibilidad de SQL Server.