Résumé
Un système de base de données est d’abord chargé du stockage précis et de la récupération de données, même en cas de pannes de système inattendue.
Le système doit garantir l’atomicité et la durabilité des transactions, tout en tenant compte de l’exécution en cours, des transactions multiples et des divers points de défaillance. Ceci est souvent appelé les propriétés ACID (atomicité, cohérence, Isolation et durabilité).
Cet article présente les implications d’un disque dur met en mémoire cache. Il est recommandé de lire les articles suivants dans la Base de connaissances Microsoft pour des explications sur la mise en cache et d’autres modes de défaillance :
86903 de SQL Server et la mise en cache des contrôleurs de disque
230785 enregistrement de SQL Server 7.0 et SQL Server 2000 et les algorithmes de stockage de données étendent la fiabilité des données
Les documents suivants sont également recommandés :
-
Principes fondamentaux de SQL Server 2000 d’e/s :
http://technet.microsoft.com/en-us/library/cc966500.aspx -
Chapitre de notions de base d’e/s SQL Server 2 :
http://www.microsoft.com/technet/prodtechnol/sql/2005/iobasics.mspx
Remarque Ces deux documents s’appliquent à toutes les versions actuellement prises en charge de SQL Server.
Plus d'informations
Microsoft SQL Server et nombreux produits grand public de la base de données sur le marché aujourd'hui utilisent le protocole Write-Ahead Logging (WAL).
Écriture anticipée (WAL) protocole d’enregistrement
Le terme protocole est un excellent moyen de décrire WAL. Il est spécifique et défini d’étapes d’implémentation nécessaires pour garantir que les données est stockée et échangée correctement et peuvent être restaurées à un état connu en cas de panne. Tout comme un réseau contient un protocole défini permettant d’échanger des données de manière cohérente et protégée, donc trop WAL décrit le protocole permettant de protéger les données.Les fichiers journaux et de données à l’aide de la fonction Win32 CreateFile d’ouvrir toutes les versions de SQL Server. Le membre dwFlagsAndAttributes inclut l’option FILE_FLAG_WRITE_THROUGH ouverture par SQL Server.
FILE_FLAG_WRITE_THROUGH
Cette option indique au système d’écrire dans n’importe quel cache intermédiaire et aller directement sur le disque. Le système peut toujours mettre en cache les opérations d’écriture, mais il ne peut pas les vider.
L’option FILE_FLAG_WRITE_THROUGH garantit que lorsqu’une écriture opération retourne réussite que les données sont correctement stockées dans un emplacement stable. Cela correspond à la spécification du protocole écrire Ahead Logging (WAL) pour vérifier les données.De nombreux lecteurs de disque (SATA, ATA, SCSI et IDE basé) contiennent des caches intégrés de 512 Ko, 1 Mo et plus. Caches de lecteur dépendent généralement d’un condensateur et non d’une batterie de secours. Ces mécanismes de mise en cache ne peut pas garantir les écritures sur une puissance de cycle ou de point de défaillance identique. Ils garantissent seulement l’achèvement des opérations d’écriture de secteur. Comme les lecteurs de continuent de croître, les caches plus grandes, et ils peuvent exposer de grandes quantités de données pendant une panne.
Systèmes de contrôleur de mise en cache améliorée désactiver le cache sur disque et fournissent une solution de cache avec batterie. Ces caches peuvent mettre à jour les données dans le cache pendant plusieurs jours et même permettre à la carte de mise en cache pour être placé sur un autre ordinateur. Lorsque l’alimentation est rétablie, les données non écrites sont complètement vidées avant que tout autre accès de données est autorisé. Beaucoup d'entre eux permettent le pourcentage de lecture par rapport au cache d’écriture à établir pour des performances optimales. Certaines contiennent des zones de stockage de grande capacité de mémoire. En fait, pour un segment spécifique du marché, certains vendeurs de matériel fournissent les systèmes avec plusieurs gigaoctets de mémoire cache de la mise en cache de disque haut de gamme avec batterie de secours. Il peuvent améliorer considérablement les performances de la base de données.
Transferts d’e/s sont effectuées sans l’utilisation d’un cache peuvent être beaucoup plus de temps à cause de la vitesse de rotation du disque dur, le temps mécanique nécessaire au déplacement des têtes de lecteur et d’autres facteurs limitatifs. Les installations de SQL Server sont destinées aux systèmes qui fournissent des contrôleurs de cache. Ces contrôleurs de désactiver les caches sur le disque et fournissent le support stable met en cache pour satisfaire aux exigences d’e/s de SQL Server. Ils évitent les problèmes de performances liés à la recherche de disque et écrire des heures en utilisant les diverses optimisations du contrôleur de mise en cache.
Il existe de nombreux types d’implémentations de sous-système. RAID et SAN est deux exemples de ces types d’implémentations de sous-système. Ces systèmes sont généralement construits avec les lecteurs SCSI. Il existe plusieurs raisons à cela. Générique, la section suivante décrit les considérations de disque de niveau élevé.
Disques SCSI :
-
Sont en général fabriqués pour une utilisation lourds.
-
En règle générale destinée aux implémentations multi-utilisateur, basées sur serveur.
-
En général ont entre-temps mieux au taux de défaillance que les autres implémentations.
-
Contiennent la technologie heuristique sophistiquée permettant de prédire les pannes imminentes.
Autres implémentations de lecteur, tel que IDE, ATA et SATA :
-
Sont en général fabriqués pour une utilisation de lumière et des moyennes.
-
En règle générale visant les applications utilisateur unique.
-
Certaines implémentations plus récentes contiennent heuristique sophistiquée permettant de prédire les pannes imminentes.
Les contrôleurs non-SCSI, sur le bureau nécessitent plus de bande passante processeur principal (CPU) et sont souvent limitées par une seule commande active. Par exemple, un disque non-SCSI est régler un bloc défectueux, le lecteur nécessite que les commandes de l’hôte s’attendre. Le bus ATA présente un autre exemple. Le bus ATA prend en charge les 2 périphériques, mais uniquement une seule commande peut être active. Un lecteur reste inactif pendant que la commande en attente des services de l’autre lecteur. Les systèmes RAID reposant sur les technologies de bureau peuvent tous ces problèmes et être grandement affectés par le répondeur plus lent. À moins que ces systèmes utilisent des conceptions avancées, ses performances ne seront pas aussi efficace que les performances des systèmes SCSI.
Il existe des situations dans lesquelles un lecteur de bureau ou d’un tableau est une solution économique. Par exemple, si vous configurez une base de données en lecture seule pour la création de rapports, vous ne devez pas rencontrer la plupart des facteurs de performances d’une base de données OLTP lors de la mise en cache du disque est désactivé.
Tailles de disques de continuer à augmenter. Les disques économiques haute capacité, peuvent être très attrayants. Mais lorsque vous configurez le lecteur pour SQL Server et de vos besoins de temps de réponse, vous devez réfléchir soigneusement les problèmes suivants :
-
Conception de chemin d’accès
-
L’obligation de désactiver le cache sur disque
Le tableau suivant fournit des commentaires de niveau élevés. Les informations de commentaires sont basées sur les configurations courantes de fabrication.
Type de lecteur de système de base |
Commentaires |
IDE et ATA |
|
Ordinateur Portable / l’IDE |
|
SATA |
|
SCSI |
|
Serial Attached SCSI (SAS) inclut les files d’attente avancées jusqu'à 256 niveaux. SAS comprend également des fonctions de chef de file d’attente et queuing de manière désordonnée. Le fond de panier SAS est conçu de façon que permet l’utilisation de SAS et SATA des disques au sein du même système. Les avantages de la création d’associations de sécurité sont évidentes.
Votre installation de SQL Server dépend de la capacité de celle du contrôleur pour désactiver le cache sur disque et pour fournir un cache d’e/s stable. Écriture des données de différents disques n’est pas un obstacle à SQL Server tant que le contrôleur fournit les fonctionnalités de mise en cache de média stable approprié. Techniques de sécurité de données avancées telles que la mise en miroir augmente la complexité de la conception du contrôleur.
Pour pleinement sécuriser vos données, vous devez vous assurer que tous les caches de données sont correctement gérée. Dans de nombreux cas, cela signifie que vous devez désactiver le cache d’écriture du lecteur de disque.
Remarque Assurez-vous que tout autre mécanisme de mise en cache peut traiter correctement les divers types de défaillances.
Microsoft a effectué des tests sur plusieurs lecteurs SCSI et IDE à l’aide de l’utilitaire SQLIOSim. Cet utilitaire simule l’activité de lecture/écriture asynchrones vers un périphérique de données simulées et du journal. Affichent les statistiques de performance de test les opérations d’écriture moyenne par seconde compris entre 50 et 70 sur un lecteur dont la mise en cache en écriture est désactivé et les rotations par minute varie entre 5 200 et 7 200.
Pour plus d’informations et plus d’informations sur SQLIOSim, consultez l’article suivant dans la Base de connaissances Microsoft :
231619 l’utilisation de l’utilitaire SQLIOSim pour simuler l’activité de SQL Server sur un sous-système de disqueDe nombreux fabricants de PC (par exemple, Compaq, Dell, Gateway ou HP) commandent les lecteurs avec le cache d’écriture désactivé. Toutefois, test montre que cela ne peut pas toujours être le cas afin que vous devez toujours tester complètement.
Remarque Si vous avez toute question à propos de l’état de mise en cache du disque dur, contactez le fabricant et d’obtenir les paramètres appropriés d’utilitaire ou de cavalier pour désactiver les opérations de mise en cache d’écriture.
SQL Server nécessite des systèmes pour prendre en charge la « remise garantie sur un support stable » comme indiqué comme indiqué sous les Conditions du programme d’e/s la fiabilité de SQL Server. Pour plus d’informations sur la configuration d’entrée et de sortie pour le moteur de base de données SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
Configuration requise de base de données moteur d’entrée/sortie 967576 de Microsoft SQL Server