Optimisation des groupes de fichiers pour les bases de données
La contention d’entrée/sortie de fichier (E/S) est souvent un facteur de limitation, ou goulot d’étranglement, dans un environnement de BizTalk Server de production. BizTalk Server est une application très gourmande en base de données et, à son tour, la base de données SQL Server utilisée par BizTalk Server est très gourmande en E/S de fichiers. Cette rubrique explique comment utiliser de manière optimale la fonctionnalité fichiers et groupes de fichiers de SQL Server pour réduire la présence de conflits d’E/S de fichiers et améliorer les performances globales d’une solution de BizTalk Server.
Vue d’ensemble
Chaque solution BizTalk Server finira par rencontrer une contention d’E/S de fichier à mesure que le débit est augmenté. Le sous-système d’E/S, ou moteur de stockage, est un composant clé de toute base de données relationnelle. L'implémentation réussie d'une base de données requiert généralement une planification soigneuse dès les premières phases d'un projet. Cette planification doit tenir compte des considérations sur les points suivants :
Le type de disque à utiliser, tel que les périphériques RAID (Redundant Array of Independent Disks), par exemple.
Comment répartir des données sur les disques à l’aide de fichiers et de groupes de fichiers. Pour plus d’informations sur l’utilisation de fichiers et de groupes de fichiers dans SQL Server, consultez Fichiers et groupes de fichiers de base de données.
Implémentation de la conception d’index optimale pour améliorer les performances lors de l’accès aux données. Pour plus d’informations sur la conception d’index, consultez Conception d’index.
Comment définir SQL Server paramètres de configuration pour des performances optimales. Pour plus d’informations sur la définition de paramètres de configuration optimaux pour SQL Server, consultez Options de configuration du serveur.
L’un des principaux objectifs de conception de BizTalk Server est de s’assurer qu’un message n’est jamais perdu. Afin d’atténuer le risque de perte de message, les messages sont fréquemment écrits dans la base de données MessageBox au fur et à mesure que le message est traité. Lorsque les messages sont traités par une orchestration, le message est écrit dans la base de données MessageBox à chaque point de persistance de l’orchestration. Ces points de persistance entraînent l’écriture du message par message et de l’état associé sur le disque physique. À des débits plus élevés, cette persistance peut entraîner une contention de disque considérable et peut potentiellement devenir un goulot d’étranglement.
Il a été démontré que l’utilisation optimale de la fonctionnalité fichiers et groupes de fichiers dans SQL Server permet de résoudre efficacement les goulots d’étranglement d’E/S de fichiers et d’améliorer les performances globales dans BizTalk Server solutions.
Notes
Cette optimisation ne doit être effectuée que par un administrateur de base de données SQL Server expérimenté et uniquement après que toutes les bases de données BizTalk Server ont été correctement sauvegardées. Cette optimisation doit être effectuée sur tous les ordinateurs SQL Server dans l’environnement BizTalk Server.
SQL Server fichiers et groupes de fichiers peuvent être utilisés pour améliorer les performances de la base de données, car cette fonctionnalité permet de créer une base de données sur plusieurs disques, plusieurs contrôleurs de disque ou des systèmes RAID (matrice redondante de disques indépendants). Par exemple, si votre ordinateur est équipé de quatre disques, vous pouvez créer une base de données comprenant trois fichiers de données et un fichier journal que vous distribuerez à raison d'un fichier par disque. À mesure que les données sont consultées, quatre têtes de lecture/écriture peuvent accéder simultanément aux données en parallèle. Cela accélère considérablement les opérations de base de données. Pour plus d’informations sur l’implémentation de solutions matérielles pour les disques SQL Server, consultez Performances de base de données dans la documentation en ligne SQL Server.
En outre, les fichiers et les groupes de fichiers permettent le placement des données, car les tables peuvent être créées dans des groupes de fichiers spécifiques. Cela améliore les performances, car toutes les E/S de fichier d’une table donnée peuvent être dirigées vers un disque spécifique. Par exemple, une table fortement utilisée peut être placée sur un fichier dans un groupe de fichiers, situé sur un disque, et les autres tables moins sollicitées dans la base de données peuvent se trouver sur différents fichiers d’un autre groupe de fichiers, situé sur un deuxième disque.
Les goulots d’étranglement des E/S de fichiers sont décrits en détail dans Goulots d’étranglement dans la couche Base de données. L’indicateur le plus courant indiquant que les E/S de fichier (E/S de disque) sont un goulot d’étranglement est la valeur du compteur « Disque physique : Longueur moyenne de la file d’attente du disque ». Lorsque la valeur du compteur « Disque physique : Longueur moyenne de la file d’attente du disque » est supérieure à environ 3 pour un disque donné sur l’un des ordinateurs exécutant SQL Server, les E/S de fichier constituent probablement un goulot d’étranglement.
Si l’application de l’optimisation des fichiers ou des groupes de fichiers ne résout pas un problème de goulot d’étranglement d’E/S de fichiers, il peut être nécessaire d’augmenter le débit du sous-système de disque en ajoutant des lecteurs physiques ou SAN supplémentaires.
Cette rubrique explique comment appliquer manuellement des optimisations de fichiers et de groupes de fichiers, mais ces optimisations peuvent également être scriptées. Un exemple de script SQL est fourni dans BizTalk Server script SQL des groupes de fichiers de base de données MessageBox.
Notes
Il est important de noter que ce script doit être modifié pour prendre en charge la configuration de fichier, de groupe de fichiers et de disque utilisée par les bases de données SQL Server pour une solution de BizTalk Server donnée.
Bases de données créées avec une configuration de BizTalk Server par défaut
Selon les fonctionnalités activées lors de la configuration de BizTalk Server, jusqu’à 13 bases de données différentes peuvent être créées dans SQL Server et toutes ces bases de données sont créées dans le groupe de fichiers par défaut. Le groupe de fichiers par défaut pour SQL Server est le groupe de fichiers PRIMARY, sauf si le groupe de fichiers par défaut est modifié à l’aide de la commande ALTER DATABASE. Le tableau suivant répertorie les bases de données créées dans SQL Server si toutes les fonctionnalités sont activées lors de la configuration de BizTalk Server.
Bases de données BizTalk Server
Base de données | Nom de la base de données par défaut | Description |
---|---|---|
Base de données de configuration | BizTalkMgmtDb | Magasin de méta-informations central pour toutes les instances de BizTalk Server dans le groupe BizTalk Server. |
Base de données MessageBox BizTalk | BizTalkMsgBoxDb | Stocke les prédicats d’abonnements. Il s’agit d’une plateforme hôte qui conserve les files d’attente et les tables d’état pour chaque hôte BizTalk Server. La base de données MessageBox stocke également les messages et les propriétés des messages. |
Base de données des suivis BizTalk | BizTalkDTADb | Stocke les données de surveillance de l’entreprise et de l’intégrité suivies par le moteur de suivi BizTalk Server. |
Base de données d'analyse BAM | BAMAnalysis | SQL Server Analysis Services base de données qui conserve les données historiques agrégées pour les activités métier. |
Base de données de schémas en étoile BAM | BAMStarSchema | Transforme les données collectées à partir de la surveillance de l’activité métier pour le traitement OLAP. Cette base de données est requise lors de l’utilisation de la base de données d’analyse BAM. |
Base de données d'importation principale BAM | BAMPrimaryImport | Stocke les événements des activités métier, puis interroge la progression et les données après les instances d’activité. Cette base de données effectue également des agrégations en temps réel. |
Base de données des archives de l'analyse BAM | BAMArchive | Stocke les prédicats d’abonnement. La base de données d’archivage BAM réduit l’accumulation de données d’activité métier dans la base de données d’importation principale BAM. |
Base de données SSO | SSODB | Stocke en toute sécurité les informations de configuration pour les emplacements de réception. Stocke des informations pour les applications affiliées à l’authentification unique, ainsi que les informations d’identification utilisateur chiffrées dans toutes les applications affiliées. |
Base de données du moteur de règles | BizTalkRuleEngineDb | Dépôt pour : - Stratégies, qui sont des ensembles de règles associées. - Vocabulaires, qui sont des collections de noms conviviaux et spécifiques à un domaine pour les références de données dans les règles. |
Base de données d’administration des services de flux de travail humain | BizTalkHwsDb | Stocke les informations d’administration requises par les services de flux de travail humain BizTalk. |
base de données de gestion des partenaires commerciaux | Module de plateforme sécurisée (TPM) | Stocke les données des partenaires commerciaux pour Business Activity Services (BAS). |
Suivi de la base de données d’administration Analysis Server | BizTalkAnalysisDb | Stocke les cubes OLAP de surveillance de l’activité et de l’intégrité. |
Séparation des fichiers de données et des fichiers journaux
Comme indiqué précédemment, une configuration de BizTalk Server par défaut place la base de données MessageBox dans un fichier unique dans le groupe de fichiers par défaut. Par défaut, les journaux de données et de transactions de la base de données MessageBox sont placés sur le même lecteur et le même chemin d’accès. Cette opération est effectuée pour prendre en charge les systèmes avec un seul disque. Une configuration de fichier/groupe de fichiers/disque unique n’est pas optimale dans un environnement de production. Pour des performances optimales, les fichiers de données et les fichiers journaux doivent être placés sur des disques distincts.
Notes
Les fichiers journaux ne font jamais partie d'un groupe de fichiers. L'espace qui leur est réservé est géré indépendamment de l'espace réservé aux données.
La règle 80/20 de distribution des bases de données BizTalk Server
La main source de conflit dans la plupart des solutions BizTalk Server, en raison d’une contention d’E/S de disque ou d’une contention de base de données, est la base de données MessageBox BizTalk Server. Cela est vrai dans les scénarios à messagebox unique et multi-MessageBox. Il est raisonnable de supposer que jusqu’à 80 % de la valeur de distribution des bases de données BizTalk sera dérivée de l’optimisation des fichiers de données MessageBox et du fichier journal. L’exemple de scénario détaillé ci-dessous est axé sur l’optimisation des fichiers de données pour une base de données MessageBox. Ces étapes peuvent ensuite être suivies pour d’autres bases de données si nécessaire. Par exemple, si la solution nécessite un suivi étendu, la base de données de suivi peut également être optimisée.
Ajout manuel de fichiers à la base de données MessageBox, étape par étape
Cette section de la rubrique décrit les étapes à suivre pour ajouter manuellement des fichiers à la base de données MessageBox. Dans cet exemple, trois groupes de fichiers sont ajoutés, puis un fichier est ajouté à chaque groupe de fichiers pour distribuer les fichiers du MessageBox sur plusieurs disques.
Ajout manuel de fichiers à la base de données MessageBox sur SQL Server
Ouvrez SQL Server Management Studio pour afficher la boîte de dialogue Se connecter au serveur.
Dans la zone d’édition Nom du serveur de la boîte de dialogue Se connecter au serveur, entrez le nom du SQL Server instance qui héberge les bases de données MessageBox BizTalk Server, puis cliquez sur Se connecter pour afficher SQL Server Management Studio. Dans le volet Explorateur d'objets de SQL Server Management Studio, développez Bases de données pour afficher les bases de données de cette instance de SQL Server.
Cliquez avec le bouton droit sur la base de données à laquelle ajouter les fichiers, puis cliquez sur Propriétés pour afficher la boîte de dialogue Propriétés de la base de données de la base de données.
Dans la boîte de dialogue Propriétés de la base de données , sélectionnez la page Groupes de fichiers . Pour créer des groupes de fichiers supplémentaires pour les bases de données BizTalkMsgBoxDb, cliquez sur Ajouter . Dans l’exemple suivant, trois groupes de fichiers supplémentaires sont ajoutés.
Dans la boîte de dialogue Propriétés de la base de données , sélectionnez la page Fichiers .
Pour créer des fichiers supplémentaires à ajouter aux groupes de fichiers, cliquez sur Ajouter , puis sur OK. La base de données MessageBox est désormais distribuée sur plusieurs disques, ce qui offre un avantage significatif en matière de performances par rapport à une configuration de disque unique.
Dans l’exemple suivant, un fichier est créé pour chacun des groupes de fichiers créés précédemment et chaque fichier est placé sur un disque distinct.
Exemple de script SQL pour l’ajout de groupes de fichiers et de fichiers à la base de données BizTalk MessageBox
Ce guide inclut un script SQL permettant d’ajouter des groupes de fichiers et des fichiers à la base de données MessageBox BizTalk Server.
Notes
Étant donné que SQL Server écrit dans ses fichiers journaux de manière séquentielle, la création de plusieurs fichiers journaux pour une base de données SQL Server n’offre aucun avantage en matière de performances.
Pour exécuter ce script, procédez comme suit :
Ouvrez SQL Server Management Studio pour afficher la boîte de dialogue Se connecter au serveur.
Dans la zone d’édition Nom du serveur de la boîte de dialogue Se connecter au serveur, entrez le nom du SQL Server instance qui héberge les bases de données MessageBox BizTalk Server, puis cliquez sur Se connecter pour afficher la boîte de dialogue SQL Server Management Studio.
Dans SQL Server Management Studio, cliquez sur le menu Fichier, pointez sur Nouveau, puis cliquez sur Interroger avec la connexion actuelle pour démarrer le Éditeur de requête SQL.
Copiez l’exemple de script de BizTalk Server script SQL des groupes de fichiers de base de données MessageBox dans le Éditeur de requête.
Modifiez les paramètres du script pour qu’ils correspondent à votre environnement BizTalk Server, puis exécutez le script.
L’avantage de l’écriture de scripts est que les scripts peuvent effectuer plusieurs tâches rapidement, peuvent être reproduits avec précision et réduire le risque d’erreur humaine. L’inconvénient de l’écriture de scripts est que l’exécution d’un script mal écrit peut potentiellement entraîner de graves problèmes qui peuvent nécessiter la reconfiguration des bases de données BizTalk Server à partir de zéro.
Important
Il est de la plus haute importance que les scripts SQL tels que l’exemple de script de ce guide soient minutieusement testés avant d’être exécutés dans un environnement de production.