Bases de données
Un site Citrix Virtual Apps ou Citrix Virtual Desktops Site utilise trois bases de données SQL Server :
- Site : (également appelé Configuration de site) stocke les données de configuration du site, ainsi que les informations sur l’état de la session et la connexion.
- Journalisation de la configuration : (également appelée Journalisation) stocke des informations sur les modifications apportées à la configuration du site et les activités administratives. Cette base de données est utilisée lorsque la fonction Journalisation de la configuration est activée (valeur par défaut=activée).
- Contrôle : stocke les données utilisées par Director, telles que les informations de session et de connexion.
Chaque Delivery Controller communique directement avec la base de données du site. L’authentification Windows est requise entre le Controller et les bases de données. Il est possible de déconnecter un Controller ou de le mettre hors tension sans affecter les autres Controller du site. L’unique point de défaillance reste par conséquent la base de données. Si le serveur de base de données échoue, les connexions existantes continuent de fonctionner jusqu’à ce que l’utilisateur ferme sa session ou se déconnecte. Pour plus d’informations sur le comportement de la connexion lorsque la base de données de site devient indisponible, consultez la section Cache d’hôte local.
Citrix vous recommande de sauvegarder régulièrement les bases de données afin de pouvoir la restaurer en cas de défaillance du serveur de base de données. La stratégie de sauvegarde pour chaque base de données peut différer. Pour obtenir des instructions, veuillez consulter la section CTX135207.
Si votre site contient plus d’une zone, assurez-vous que la zone principale contient toujours la base de données du site. Les Controller de chaque zone communiquent avec cette base de données.
Haute disponibilité
Il existe trois solutions de haute disponibilité à considérer pour garantir le basculement automatique :
- Groupes de disponibilité AlwaysOn (y compris les groupes de disponibilité de base) : cette solution à haute disponibilité et reprise après sinistre introduite dans SQL Server 2012 vous permet d’optimiser la disponibilité pour une ou plusieurs bases de données. Les Groupes de disponibilité AlwaysOn nécessitent que les instances SQL Server résident les nœuds WSFC (Windows Server Failover Clustering). Pour plus d’informations, consultez Clustering de basculement Windows Server avec SQL Server.
- Mise en miroir de la base de données SQL Server : la mise en miroir de la base de données garantit qu’en cas d’indisponibilité soudaine du serveur de base de données actif, le basculement automatique se produit au bout de quelques secondes seulement, évitant généralement toute gêne pour les utilisateurs. Cette méthode est plus coûteuse que les autres solutions car des licences complètes de SQL Server sont requises sur chaque serveur de base de données. Vous ne pouvez pas utiliser l’édition SQL Server Express dans un environnement de mise en miroir.
- Mise en cluster SQL : la technologie de mise en cluster SQL de Microsoft peut être utilisée pour permettre à un serveur d’assurer automatiquement la reprise des tâches et des responsabilités d’un autre serveur défaillant. Toutefois, cette solution est plus complexe à mettre en place et le basculement automatique est généralement plus lent qu’avec les autres méthodes, comme la mise en miroir SQL.
- À l’aide des fonctionnalités de haute disponibilité de l’hyperviseur : avec cette méthode, vous déployez la base de données en tant que machine virtuelle et utilisez les fonctionnalités de haute disponibilité de votre hyperviseur. Cette solution est moins coûteuse que la mise en miroir du fait qu’elle utilise votre logiciel d’hyperviseur et que vous pouvez également utiliser l’édition SQL Server Express. Cependant, le processus de basculement automatique est plus lent car il faut un certain temps pour qu’une nouvelle machine démarre pour la base de données, avec le risque d’interrompre le service fourni aux utilisateurs.
La fonctionnalité Cache d’hôte local complète les meilleures pratiques de haute disponibilité de SQL Server. Le cache hôte local permet aux utilisateurs de se connecter et de se reconnecter aux applications et aux bureaux même lorsque la base de données de site n’est pas disponible. Pour plus d’informations, consultez Cache d’hôte local.
Si tous les Controller d’un site échouent, vous pouvez configurer les VDA pour fonctionner en mode haute disponibilité, qui permet aux utilisateurs de continuer à accéder à leurs bureaux et applications. En mode haute disponibilité, le VDA accepte des connexions ICA directes provenant des utilisateurs, plutôt que des connexions négociées par le Controller. Utilisez cette fonctionnalité uniquement dans les rares cas où la communication avec tous les Controllers échoue. Il ne s’agit pas d’une solution alternative aux autres solutions de haute disponibilité. Pour plus d’informations, consultez CTX 127564.
L’installation d’un Controller sur un nœud dans une installation de mise en cluster SQL ou mise en miroir SQL n’est pas prise en charge.
Installer le logiciel de base de données
Par défaut, l’édition SQL Server Express est installée lorsque vous installez le premier Delivery Controller, si une autre instance SQL Server n’est pas détectée sur ce serveur. Cette mesure par défaut est généralement suffisante pour la preuve de concept ou pour les déploiements pilotes. Toutefois, SQL Server Express ne prend pas en charge les fonctionnalités de haute disponibilité de Microsoft.
L’installation par défaut utilise les comptes de service et autorisations Windows par défaut. Reportez-vous à la documentation Microsoft pour de plus amples informations sur ces défauts, y compris l’ajout de comptes de service Windows au rôle sysadmin. Le Controller utilise le compte de service réseau de cette configuration. Le Controller ne requiert aucun rôle ni autorisation SQL Server supplémentaire.
Le cas échéant, vous pouvez sélectionner Masquer l’instance pour l’instance de base de données. Lors de la configuration de l’adresse de la base de données dans Studio, entrez le numéro de port statique de l’instance plutôt que son nom. Reportez-vous à la documentation Microsoft pour de plus amples informations sur le masquage d’une instance du moteur de base de données SQL Server.
Pour la plupart des déploiements de production et tout déploiement utilisant les fonctionnalités de haute disponibilité Microsoft, nous vous recommandons d’utiliser uniquement les éditions non-Express prises en charge de SQL Server. Installez SQL Server sur des machines autres que le serveur sur lequel le premier Controller est installé. Configuration système requise répertorie les versions de SQL Server prises en charge. Les bases de données peuvent résider sur une ou plusieurs machines.
Assurez-vous que le logiciel SQL Server est installé avant de créer un site. Vous n’avez pas besoin de créer la base de données, mais si vous le faites, elle doit être vide. La configuration de technologies haute disponibilité de Microsoft est également recommandée.
Utilisez Windows Update pour conserver SQL Server à jour.
Configurer les bases de données à partir de l’assistant de création de site
Indiquez le nom et l’adresse des bases de données (emplacement) sur la page Bases de données dans l’assistant de création de site. (voir Formats d’adresse de base de données.) Pour éviter des erreurs lorsque Director interroge Monitor Service, n’utilisez pas d’espaces dans le nom de la base de données de contrôle.
La page Bases de données offre deux options pour configurer les bases de données : automatiquement et à l’aide de scripts. En général, vous pouvez utiliser l’option automatique si vous (utilisateur de Studio et administrateur de Citrix) disposez des privilèges de base de données requis. (Voir Autorisations requises pour configurer les bases de données.)
Vous pouvez modifier l’emplacement des bases de données de journalisation de la configuration et de contrôle après la création du site. Consultez Modifier l’emplacement des bases de données.
Pour configurer un site pour utiliser une base de données mise en miroir, effectuez les étapes suivantes, puis passez à la procédure de configuration automatique ou à l’aide d’un script.
- Installez le logiciel SQL Server sur deux serveurs, A et B
- Sur le serveur A, créez la base de données destinée à être utilisée comme base de données principale. Sauvegardez la base de données sur le serveur A, puis copiez-la sur le serveur B.
- Sur le serveur B, restaurez le fichier de sauvegarde.
- Démarrez la mise en miroir sur le serveur A.
Pour vérifier la mise en miroir après la création du site, exécutez le cmdlet PowerShell get-configdbconnection
pour vous assurer que le partenaire de basculement a été défini dans la chaîne de connexion pour le miroir.
Si vous ajoutez, déplacez ou supprimez un Delivery Controller dans un environnement de base de données mise en miroir ultérieurement, consultez l’article Delivery Controller.
Configuration automatique
Si vous disposez des privilèges de base de données requis, sélectionnez Créer et configurer les bases de données à partir de Studio sur la page Bases de données de l’assistant de création de site. Ensuite, indiquez les noms et adresses des bases de données principales.
Si une base de données existe sur une adresse spécifiée, elle doit être vide. Si les bases de données n’existent pas sur une adresse spécifiée, vous êtes informé qu’aucune base de données n’a été détectée, puis vous êtes invité à indiquer si vous souhaitez que la base de données soit créée pour vous. Lorsque vous confirmez, Studio crée automatiquement les bases de données, puis applique les scripts d’initialisation pour les bases de données principales et les copies.
Installation à l’aide de scripts
Si vous ne disposez pas des privilèges de base de données requis, un utilisateur avec ces autorisations, tel qu’un administrateur de base de données, doit vous aider. Voici la séquence :
- Sur la page Bases de données de l’assistant de création de site, sélectionnez Générer des scripts. Six scripts sont générés : deux pour chacune des trois de bases de données, un pour chaque base de données principale et un autre pour chaque copie. Vous pouvez indiquer l’emplacement de stockage des scripts.
- Donnez ces scripts à votre administrateur de base de données. L’assistant de création de site s’arrête automatiquement à ce stade. Lorsque vous revenez plus tard, vous êtes invité à poursuivre la création du site.
L’administrateur de base de données crée alors les bases de données. Chaque base de données doit présenter les caractéristiques suivantes :
- Utilisez un classement qui se termine par
_CI_AS_KS
. Citrix vous recommande d’utiliser un classement qui se termine par_100_CI_AS_KS
. - Pour des performances optimales, activez l’option Capture instantanée Read Committed de SQL Server. Pour plus de détails, consultez la section CTX 137161.
- Fonctionnalités haute disponibilité configurées, le cas échéant.
- Pour configurer la mise en miroir, vous devez tout d’abord définir la base de données pour utiliser le modèle de récupération complet (le modèle simple est la valeur par défaut). Sauvegardez la base de données principale dans un fichier et copiez-la sur le serveur miroir. Sur la base de données miroir, restaurez le fichier de sauvegarde sur le serveur miroir. Ensuite, démarrez la mise en miroir sur le serveur principal.
L’administrateur de base de données utilise l’utilitaire de ligne de commande SQLCMD ou SQL Server Management Studio en mode SQLCMD pour :
- Exécuter chacun des scripts
xxx_Replica.sql
sur les instances de base de données SQL Server haute disponibilité (si la haute disponibilité est configurée) - Exécuter chacun des scripts
xxx\_Principal.sql
sur les instances de base de données SQL Server principales.
Consultez la documentation Microsoft sur SQLCMD pour plus de détails.
Lorsque tous les scripts sont terminés, l’administrateur de la base de données donne à l’administrateur Citrix les trois adresses de base de données principale.
Studio vous invite à continuer la création de site et vous êtes renvoyé à la page Bases de données. Entrez les adresses. Si l’un des serveurs hébergeant une base de données ne peut pas être contacté, un message d’erreur s’affiche.
Autorisations requises pour configurer les bases de données
Vous devez être un administrateur local et un utilisateur du domaine pour créer et initialiser les bases de données (ou modifier l’emplacement de la base de données). Vous devez également disposer de certaines autorisations SQL Server. Les autorisations suivantes peuvent être explicitement configurées ou acquises par l’appartenance à un groupe Active Directory. Si vos informations d’identification d’utilisateur Studio ne comprennent pas ces autorisations, vous êtes invité à entrer les informations d’identification d’utilisateur SQL Server.
Opération | Objectif | Rôle de serveur | Rôle de base de données |
---|---|---|---|
Créer une base de données | Créer une base de données vide appropriée | dbcreator |
|
Créer un schéma | Créer tous les schémas spécifiques au service et ajouter le premier Controller au site |
securityadmin * |
db_owner |
Ajouter un Controller | Ajouter un Controller (autre que le premier) au site |
securityadmin * |
db_owner |
Ajouter un Controller (serveur miroir) | Ajouter une ouverture de session Controller au serveur de base de données assumant actuellement le rôle de miroir d’une base de données en miroir |
securityadmin * |
|
Supprimer Controller | Supprimer le Controller du site | ** | db_owner |
Mettre à jour un schéma | Appliquer les mises à jour ou correctifs au schéma | db_owner |
* Bien que techniquement plus restrictif, en pratique, vous pouvez traiter le rôle de serveur securityadmin
comme équivalent au rôle de serveur sysadmin
.
** Lorsqu’un Controller est supprimé d’un site, soit via Studio, soit à l’aide des scripts générés par Studio ou SDK, l’ouverture de session du Controller sur le serveur de base de données n’est pas supprimée. Cela permet d’éviter de supprimer potentiellement une ouverture de session utilisée par des services autres que ce produit Citrix sur la même machine. L’ouverture de session doit être supprimée manuellement si elle n’est plus requise. Cette action nécessite l’appartenance au rôle de serveur securityadmin
.
Lors de l’utilisation de Studio pour effectuer ces opérations, l’utilisateur Studio doit disposer d’un compte de serveur de base de données explicitement membre des rôles serveur appropriés, ou être en mesure de fournir les informations d’identification d’un compte qui est membre.
Scripts de droits de base de données préférés
Dans les environnements d’entreprise, la configuration de la base de données inclut des scripts qui doivent être gérés par différentes équipes ayant des rôles (droits) différents : securityadmin
ou db_owner
.
Avec PowerShell, vous pouvez désormais spécifier les droits de base de données préférés. (Cette fonctionnalité n’est pas disponible dans Studio, qui ne prend en charge qu’un seul script contenant toutes les tâches.)
La spécification d’une valeur autre que celle par défaut entraîne la création de scripts distincts. Un script contient des tâches nécessitant le rôle securityadmin
. L’autre script ne requiert que des droits db_owner
et peut être exécuté par un administrateur Citrix sans avoir à contacter un administrateur de base de données.
Dans les applets de commande get-*DBSchema
, l’option -DatabaseRights
a les valeurs valides suivantes :
-
SA
: génère un script qui crée les bases de données et la connexion Delivery Controller. Ces tâches requièrent des droitssecurityadmin
. -
DBO
: génère un script qui crée les rôles utilisateur dans la base de données, ajoute les connexions, puis crée les schémas de base de données. Ces tâches requièrent des droitsdb_owner
. -
Mixed
: (valeur par défaut) toutes les tâches dans un seul script, quels que soient les droits requis.
Pour plus d’informations, consultez l’aide de l’applet de commande.
Formats d’adresse de base de données
Vous pouvez spécifier une adresse de base de données dans l’un des formats suivants :
ServerName
ServerName\InstanceName
ServerName,PortNumber
Pour un groupe de disponibilité AlwaysOn, spécifiez l’écouteur du groupe dans le champ d’emplacement.
Modifier l’emplacement des bases de données
Après avoir créé un site, vous pouvez modifier l’emplacement des bases de données de journalisation de la configuration et de contrôle. (Vous ne pouvez pas modifier l’emplacement de la base de données du site.) Lorsque vous modifiez l’emplacement d’une base de données :
- Les données provenant de la base de données précédente ne sont pas importées vers la nouvelle base de données.
- Les journaux ne peuvent pas être regroupés pour les deux bases de données lors de la récupération des journaux.
- La première entrée du journal dans la nouvelle base de données indique qu’une modification a été apportée dans une base de données, mais elle n’identifie pas la base de données précédente.
Vous ne pouvez pas modifier l’emplacement de la base de données de journalisation de la configuration lorsque la journalisation obligatoire est activée.
Pour modifier l’emplacement d’une base de données :
- Assurez-vous qu’une version prise en charge de Microsoft SQL Server est installée sur le serveur sur lequel vous souhaitez que la base de données réside. Configurez les fonctionnalités de haute disponibilité en fonction de vos besoins.
- Sélectionnez une configuration dans le volet de navigation Studio.
- Sélectionnez la base de données pour laquelle vous souhaitez spécifier un autre emplacement, puis sélectionnez Modifier la base de données dans le volet Actions.
- Spécifiez le nouvel emplacement et le nom de la base de données.
- Si vous souhaitez que Studio crée la base de données et que vous possédez les autorisations appropriées, cliquez sur OK. Lorsque vous y êtes invité, cliquez sur OK et Studio crée la base de données automatiquement. Studio tente d’accéder à la base de données à l’aide de vos informations d’identification. Si la tentative échoue, vous êtes invité à entrer les informations d’identification de l’utilisateur de la base de données. Studio télécharge ensuite le schéma de base de données vers la base de données. Les informations d’identification ne sont conservées que durant la création de la base de données.
- Si vous ne souhaitez pas que Studio crée la base de données, ou si vous ne disposez pas des autorisations suffisantes, cliquez sur Générer script. Les scripts générés contiennent des instructions permettant de créer manuellement la base de données et une base de données miroir, si nécessaire. Avant le chargement du schéma, assurez-vous que la base de données est vide et qu’au moins un utilisateur est autorisé à accéder et modifier la base de données.
Plus d’informations
- Outil de dimensionnement de base de données.
- Dimensionnement de la base de données du site et configuration des chaînes de connexion lors de l’utilisation de solutions de haute disponibilité SQL Server.