INF : Utilisation du cache du lecteur de disque avec SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 234656 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F234656
Agrandir tout | Réduire tout

Résumé

Un système de base de données est avant tout responsable de la fiabilité du stockage et de la récupération des données, même en cas de défaillances système inattendues.

Il doit garantir l'atomicité et la durabilité des transactions, tout en rendant compte de l'exécution en cours, des transactions multiples et des divers points de défaillance. Ces propriétés sont souvent désignées sous l'acronyme ACID (Atomicité, Cohérence, Isolation et Durabilité).

Cet article présente les implications des caches d'un lecteur de disque. Il est conseillé de lire les articles suivants dans la Base de connaissances Microsoft pour obtenir des précisions complémentaires sur la mise en cache et sur les autres modes de défaillance :
86903 INF : SQL Server et la mise en cache des contrôleurs de disque
46091 INF : Utilisation du cache du contrôleur de disque dur avec SQL Server
230785 INF : Les algorithmes d'enregistrement et de stockage des données de SQL Server 7.0 étendent la fiabilité des données

Plus d'informations

SQL Server 7.0, les versions antérieures de SQL Server et de nombreux produits de gestion de base de données vendus couramment sur le marché utilisent le protocole WAL (Write-Ahead Logging).
Protocole WAL (Write-Ahead Logging)
Le terme protocole décrit parfaitement WAL. Il s'agit d'un ensemble spécifique et défini d'étapes d'implémentation permettant de garantir que les données sont correctement stockées et échangées, et qu'elles peuvent être récupérées dans un état connu en cas de défaillance. De la même manière qu'un réseau contient un protocole défini permettant d'échanger des données de manière cohérente et protégée, WAL décrit le protocole permettant de protéger les données.
Toutes les versions de SQL Server ouvrent les fichiers journaux et de données à l'aide de la fonction Win32 CreateFile. Le membre dwFlagsAndAttributes inclut l'option FILE_FLAG_WRITE_THROUGH lorsqu'il est ouvert par SQL Server.
FILE_FLAG_WRITE_THROUGH
Cette option indique au système d'écrire directement sur le disque en ignorant les caches intermédiaires. Le système peut toujours placer en mémoire cache les opérations d'écriture, mais il ne peut pas les vider.

L'option FILE_FLAG_WRITE_THROUGH garantit que lorsqu'une opération d'écriture a été exécutée, les données sont correctement stockées dans un emplacement stable. Cette option s'aligne sur la spécification du protocole WAL (Write Ahead Logging) en vue de protéger les données.
De nombreux lecteurs de disque (SCSI et IDE) contiennent des caches intégrés de 512 Ko, 1 Mo ou plus volumineux. Toutefois, les caches de lecteur dépendent généralement d'un condensateur et non d'une source d'alimentation associée à une batterie de secours. Ces mécanismes de mise en cache ne peuvent garantir l'intégrité des écritures sur un cycle d'alimentation complet ou un point de défaillance identique. Ils garantissent seulement l'exécution des opérations d'écriture sur le secteur. Comme la taille des caches augmente avec celle des lecteurs, ils peuvent perdre des volumes de données plus importants au cours d'une défaillance.

De nombreux vendeurs fournissent des solutions de mise en cache fonctionnant avec des batteries fonctionnelles de secours. Ces systèmes peuvent conserver les données dans le cache pendant plusieurs jours. Ils permettent même d'installer la carte du cache sur un deuxième ordinateur. Lorsque l'alimentation est rétablie, les données non écrites sont complètement vidées avant que tout autre accès aux données ne soit autorisé. La plupart de ces solutions permettent d'établir un pourcentage entre le cache de lecture et le cache d'écriture pour obtenir des performances optimales. Certaines contiennent des zones de stockage de mémoire importantes. En fait, pour un segment spécifique du marché, certains vendeurs de matériel fournissent des systèmes de cache de disque haut de gamme, équipés d'une batterie de secours et offrant une capacité de 6 Go, voire plus. Ce type de matériel peut nettement améliorer les performances d'une base de données.

Les transferts E/S qui n'utilisent pas de cache peuvent être considérablement plus longs à cause de la minuterie mécanique nécessaire au déplacement des têtes de lecteur, de la vitesse de rotation et d'autres contraintes.

Pour assurer une sécurité parfaite de vos données, vous devez vous assurer que toutes les opérations de mise en cache des données sont correctement gérées. Pour cela, vous devrez souvent désactiver le cache d'écriture du lecteur de disque.

REMARQUE : Assurez-vous que tous les autres mécanismes de mise en cache peuvent traiter correctement les divers types de défaillances.

Microsoft a effectué des tests sur plusieurs lecteurs SCSI et IDE à l'aide de l'utilitaire SQL70IOStress. Cet utilitaire simule un important volume d'activités de lecture/écriture asynchrones vers un périphérique de données et un périphérique d'enregistrement simulés. Les statistiques de performance du test montrent que le nombre moyen d'opérations d'écriture par seconde se situe entre 50 et 70 sur un lecteur dont le cache d'écriture est désactivé et le nombre de rotations par minute varie entre 5 200 et 7 200.

Pour plus d'informations et des renseignements complets sur SQL70IOStress, consultez l'article suivant de la Base de connaissances Microsoft :
231619 INF : Réaliser un test de stress sur le sous-système de disque à l'aide de l'utilitaire SQL70IOStress
De nombreux fabricants d'ordinateurs personnels (par exemple, Compaq, Dell, Gateway ou HP) commandent les lecteurs avec le cache d'écriture désactivé. Cependant, l'expérience montre que ce n'est pas toujours le cas et vous devez donc toujours effectuer un test complet du système.

REMARQUE : Si vous avez des doutes quant au statut du cache de votre lecteur de disque, contactez le fabricant pour vous procurer l'utilitaire ou les paramètres de cavaliers nécessaires à la désactivation des opérations du cache d'écriture.

Propriétés

Numéro d'article: 234656 - Dernière mise à jour: jeudi 3 avril 2003 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 7.0 Standard
Mots-clés : 
kbinfo KB234656
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com