Facteurs clés à prendre en considération lors l'évaluation de systèmes de cache de fichiers tiers avec SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 917043 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article présente quelques-uns des facteurs clés clients doivent être conscient des lors de l'évaluation un fichier de tierce partie mise en cache du système.

Implémentations de cache de fichiers tiers peuvent améliorer les performances de bases de données Microsoft SQL Server lorsque implémenté correctement. Configurations de ces produits et des implémentations spécifiques, toutefois, peuvent conservez bases de données SQL Server un risque élevé de perte de données. Clients doivent complètement tester la configuration pour garantir l'intégrité des données approprié.

Données de ce document, y compris URL et autres références à des sites Internet, sont sujettes à modification sans préavis. Sauf mention contraire, les sociétés, organisations, produits, noms de domaine, adresses de messagerie, logos, personnes, lieux et événements mentionnés dans les exemples sont fictifs. Aucune association avec tout société réels, organisation, produit, nom de domaine, adresse de messagerie, logo, personne, lieu ou événement est destinée ou fortuite et involontaire. Conformer aux lois de copyright qui applicables est de la responsabilité de l'utilisateur. Sans limiter les droits d'auteur, aucune partie de ce document ne peut être reproduite, stockée dans ou introduite dans un système de récupération ou transmettre sous toute forme ou par tout moyen (électronique, mécanique, photocopie, enregistrement ou dans le cas contraire) ou à quelque fin, sans la permission expresse et écrite de Microsoft Corporation.

Microsoft peut avoir des brevets, brevets, marques, droits d'auteur ou autres droits de propriété intellectuelle sujet dans ce document. Sauf stipulation expresse contraire dans tout contrat de licence écrit de Microsoft, la fourniture de ce document n'a pas concéder vous toute licence sur ces brevets, marques, droits d'auteur ou autres droits de propriété intellectuelle.

© 2006 Microsoft Corporation. Tous droits réservés.

Microsoft, Windows, Windows Server et SQL Server sont des marques ou des marques déposées de Microsoft Corporation aux États-Unis d'Amérique et/ou dans d'autres pays.

Cet article est écrit spécifiquement pour SQL Server mais s'applique généralement aux bases de données Jet utilisées par ainsi des produits de Active Directory et Exchange Server.

Plus d'informations

Cette section décrit la configuration requise et fournit détaillées exemples qui doivent être abordées complètement avec un fournisseur tiers avant de déployer une solution. Clients doivent également prendre une attention particulière pour tester différents scénarios de récupération pour vous assurer l'intégrité des données est correctement maintenue.

Besoins en entrée/sortie (e / S) de SQL Server

N'importe quel fichier de base de données ou de sauvegarde SQL Server requiert Notions fondamentales de stockage prenant en charge le protocole Write-transfert WAL (enregistrement). Ces principes de base décrites dans les articles suivants :
Notions de base d'E / S SQL Server 2000
http://technet.microsoft.com/en-us/library/cc966500.aspx
note L'article s'applique également à SQL Server 2005.
230785 Journalisation de SQL Server 7.0, SQL Server 2000 et SQL Server 2005 et les algorithmes de stockage de données étendent la fiabilité des données
Voici une liste de certaines exigences importantes :
  • Classement des écritures doivent être conservés.
  • Cohérence écriture dépendants doit être conservé.
  • Écrit doit toujours être sécurisées dans stable multimédia ou.
  • Prévention des e / S déchirée doit exister.

Certifications produit partenaire ne sont pas une garantie de compatibilité ou de sécurité

Un produit tiers ou un fournisseur particulier peut recevoir une certification de logo Microsoft. Toutefois, certification partenaire ou un logo de Microsoft spécifique ne pas valider compatibilité ou d'adéquation à un usage particulier pour SQL Server, Exchange Server ou Active Directory.

FILE_FLAG_WRITETHROUGH et FILE_FLAG_NO_BUFFERING

Produits de base de données Microsoft spécifiquement utiliser l'écriture continue et sans indicateurs mise en mémoire tampon pour ouvrir les fichiers de base de données pour éviter la perte de données. Toute demande d'écriture à ces fichiers doit être sécurisée au média stable. Dans le cas contraire, perte de données peut se produire. Voici des exemples spécifiques caches de système de fichiers peuvent exposer :
  • écriture de combinaison et écriture réorganisation
    Pour réduire les demandes d'E / S physiques, les caches non batterie en fonction souvent combinent et réorganiser les opérations d'écriture, immédiatement rompre les exigences de protocole WAL.
  • Taille de bloc d'E / S
    Semblable à l'écriture combinant et le réapprovisionnement sont de taille bloc e / S. Les caches tente d'effectuer des e / S en fonction de la taille de bloc d'E / S chemin d'accès. Là encore, ce peut fournir une augmentation des performances mais ouvre la base de données pour endommager et immédiatement rompt les exigences de protocole WAL.

Talking points et des exemples

La section suivante fournit exemples clés et talking points associés à l'intégrité des données et de sécurité. Il utilise panne de courant comme un point commun d'échec et la clarté, mais ce peut souvent être remplacé avec divers autres problèmes menant à des problèmes d'intégrité de la base de données similaires.

Exemple 1: perte de données et corruption physique ou logique

Envisagez le scénario suivant :
  1. Un enregistrement de journal est écrit pour page 100 dans la base de données.
  2. Un enregistrement de journal est contenu dans le cache non batterie, mais le moteur de base de données est informée de que l'écriture de journal est terminée » sécurisés à stable média ».
  3. Le moteur de base de données prend en compte l'enregistrement renforcé et problèmes d'écriture de page 100.
  4. Page 100 est également maintenu dans non batterie en cache.
  5. Valider transaction terminée sans erreur.
Le moteur de base de données continue traitement comme si il engagées correctement les écritures sur média stable. Une panne de courant à ce stade, cependant, entraîne perte de données immédiatement car les modifications existaient jamais physiquement en dehors de la cache sauvegardé non batterie. Récupération de l'incident n'indique pas une erreur car récupération sur incident ne sait pas sur l'enregistrement journal perdues et ne tente pas de rétablir le travail. Plusieurs scénarios de modification objet (clé primaire, par exemple, insère de clé étrangère) développer les différents types de dommages de base de données qui peuvent se produire.

Il existe divers autres problèmes qui peuvent survenir avec les petites modifications sur comment le cache gère les e / S. Une brève dérivation suppose que la transaction a été annulée, mais la page 100 créé physique de média. Récupération sur incident à nouveau ne sait pas sur l'enregistrement journal (jamais créé pour stable média), c'est le cas page 100 sera ne reçoit pas les opérations d'annulation pendant la récupération sur incident, en laissant la base de données logique et éventuellement physiquement endommagé.

Exemple 2 : base de données suspect

Certains fournisseurs permettent « abandonner fichiers » et souvent vous recommandons de laisser le fichier journal de base de données (.ldf pour SQL Server) choisi hors du cache. La stratégie « abandonner » est telles que l'administrateur a spécifiquement marquer les fichiers à être ignoré par le logiciel de mise en cache. Dans le cas contraire, le fichier est automatiquement inclus.

C'est une hypothèse médiocre, telle que les exemples suivants montrent comment mettre en surbrillance. Microsoft recommande de base de données et les fichiers de sauvegarde est choisi hors d'un tel cache.
  1. Le fichier journal est choisi, afin d'écritures obtenez au média stable.
  2. 100 Pages est modifié.
  3. Le moteur de base de données s'exécute une opération point de contrôle.
  4. Le moteur est informée toutes les pages de base de données et les enregistrements du journal sont sécurisés (moment up to point de contrôle considéré comme renforcé). Toutefois, les pages de données ne sont pas toutes stockée sur ou dans les médias stable.
  5. La base de données SQL Server est en mode de récupération SIMPLE, donc point de contrôle tronque maintenant les enregistrements du journal.
  6. Page 100 qui était simplement vérification pointée est modifié à nouveau.
Cette situation a exposé de la base de données à la perte de données et généralement résultats dans une base de données suspect. Là encore, si une panne de courant a lieu, récupération sur incident n'a aucun enregistrement journal car ils existent plus en raison de troncature. Le moteur de base de données contient sans informations indiquant que les pages de base de données sont manquantes données aurait dû être sécurisées au cours de la point de contrôle. Récupération sur incident essaie d'analyser la deuxième modification sur 100 pages mais échoue parce que 100 pages n'était pas correctement sécurisée au média stable au moment de la point de contrôle.

Récupération sur incident utilise la valeur enregistrement stockée dans l'en-tête de page pour déterminer les besoins de récupération.
  • Si le numéro de la page est égal ou plus récente que celle de l'enregistrement de journal, récupération n'aucun travail supplémentaire sur la page car la page est déjà cohérente avec l'enregistrement de journal en fonction de comparaison d'enregistrement.
  • Si le numéro de la page est antérieure à celle de l'enregistrement de journal, récupération doit effectuer les opérations appropriées pour renvoyer la page à l'état correct. Récupération échoue si récupération a détectés une condition de données manquants et ne peut pas retourner correctement la page à son état rightful.
Dans l'exemple, l'enregistrement précédent stockée dans l'enregistrement de journal pour la deuxième modification de page 100 n'existe pas dans l'en-tête de page, et aucun enregistrement de journal précédente présent pour rétablir la page. Par conséquent, la base de données est marquée comme suspecte, comme la récupération ne peut pas continuer en toute sécurité.

Exemple 3: sauvegardes ne sont pas valides - saut de chaîne de sauvegarde en mode silencieux

Exemple 2 est simplement une fraction de ces types de problèmes qui peuvent être rencontrés. Dans cet exemple, au lieu du mode de récupération « SIMPLE », faites-nous mettre la base de données en mode « récupération FULL » mais prendre des sauvegardes régulières du journal et de la base de données. Dans un premier temps, il apparaît que ce serait mieux parce que vous avez une chaîne de journal intacte et pourriez exécuter simplement une séquence de restauration pour corriger le problème.

Cela peut ne pas être une hypothèse valide, certaines implémentations de cache utilise la stratégie « abandonner » pour le fichier de sauvegarde ou parties d'IL peuvent être en inattendue cache. Lorsque SQL Server vide le fichier de sauvegarde, SQL Server nécessite que toutes les écritures sur le média de sauvegarde sont stockés correctement sur ou dans les médias stable utilisant la fonction API Win32 FlushFileBuffers . Par conséquent, si le fournisseur du cache ne garantit pas toutes les écritures sont vidés correctement, durant l'appel de fonction FlushFileBuffers , à stable média avant l'opération correctement terminée, la base de données de moteur peut tronquer le journal sans une sauvegarde sécurisé. Là encore, une panne de courant provoque à ce stade une condition dans laquelle les enregistrements du journal approprié sont manquants et peuvent provoquer à échouer la récupération sur incident. Ce qui est plus important est que récupération sur incident pas pourrez détecter cette cause des enregistrements journal manquant de la base de données et la chaîne de sauvegarde peut être endommagée en mode silencieux. Uniquement si une restauration de la sauvegarde est tentée le moteur de base de données pourront indiquer que la sauvegarde a été endommagée.

Exemple 4: base de données non valides états

Fichiers de base de données contiennent des dépendances entre eux nécessitant strict écriture continue et d'ordonner la conformité à appliquer à toutes les sous la forme d'un groupe. Point de contrôle, changements de taille de fichier, sauvegardes différentielles, non-consignées opérations et la récupération BULK connecté sont parmi les quelques les activités de base de données de clé qui nécessitent écriture par le biais pour se produire sur les fichiers de données, effectuer des stratégies telles que décidez des uniquement le fichier journal une hypothèse non valide.

Exemple 5: perte de données instantané de base de données-peuvent être en mode silencieux

SQL Server 2005 introduit des bases de données instantané pour point dans les requêtes de temps. Il utilise la technologie de base de données copie sur écriture pour sécuriser une copie d'une page de données dans la base de données données instantané avant qu'une nouvelle modification est effectuée à la page de données dans la base de données de base. Ce processus nécessite que la page être sécurisé dans la base de données instantané avant que la transaction puisse continuer. Si la page est non sécurisée dans ou média stable, problèmes d'intégrité de données sont conservées. La base de données instantané ne contient pas un journal des transactions, l'écriture de la page est critique. Si quelque chose comme une panne de courant s'est produite, il peut être possible que la page de base de données principale a été modifiée mais l'instantané ne reflète pas l'image précédente car l'écriture mis en cache a été perdue.

Comment faire pour configurer

Comment faire pour configurer un produit fournissant le cache de fichiers de quelque chose comme batterie non sauvegardés cache est spécifique à l'implémentation du fournisseur. Quelques règles, cependant, peuvent être appliquées :
  • Toutes les écritures devant être achevées dans stable multimédia ou avant que le cache indique au système d'exploitation que les e / S est terminée.
  • Les données peuvent être mises en cache tant que demande de lecture en service à partir du cache renvoie la même image comme situés dans ou sur le média stable.
Ces règles signifie essentiellement que le cache sauvegardé non batterie peut être efficace pour les opérations de lecture mais ne doit pas servir pour les requêtes d'écriture. Avec la configuration correcte, il peut fournir un gain de performance pour le moteur de base de données. Cela devraient, cependant, être testé avec précaution, car la configuration côté quelque chose comme RAM qui peut être utilisée par SQL Server peut nuire aux performances générales. SQL Server pourrez utiliser la mémoire supplémentaire avec une précision plus qu'un mécanisme de cache générique.

Bases de données en lecture seule

Bases de données en lecture seule peuvent être un bon exemple où excel ces types de produits. Si la base de données a été tout d'abord créé et stocké sur ou dans les médias stable pour définir l'intégrité des données, l'instruction ALTER DATABASE utilisé pour marquer la base de données en lecture uniquement et la base de données ensuite affecté au mécanisme de mise en cache, gains de performance peuvent être rencontrés. Certaines implémentations conserver compressés images des pages de base de données dans le cache, autoriser des données plus physiques à extraire à partir du cache et réduction d'E / S physique.

Avertissement La base de données doit jamais être effectuée en lecture écriture lorsqu'affectée à un cache n'uphold pas le protocole WAL.

Sécurité

Présentation d'un cache, tels que le cache de système de fichier en fonction de RAM, présente un autre « mémoire » magasin de données. Produits tels qu'un moteur de base de données peuvent Supposons des données critiques a été stockées dans ou sur le média stable et correctement conservent protections de liste (ACL) contrôle l'accès. Le cache en fonction de RAM peut présenter les données d'un ensemble de problèmes de sécurité sont uniques par rapport aux médias stable. Par exemple, si l'application est conçue pour utiliser quelque chose comme la fonction SecureZeroMemory chaque fois qu'il a fini d'utiliser des informations importantes, l'application a une prévision que les données n'existe plus dans la mémoire VIVE. Toutefois, si un formulaire de données peut restent mis en cache lorsque l'application qu'il soit dans stable multimédia ou prévu, il peut modifier la sécurité.

Vérifications de l'intégrité des données

Microsoft recommande toujours une stratégie de l'intégrité des données fort et clair. Ce doit inclure, mais n'est pas limité aux, restauration des sauvegardes et des opérations de DBCC CHECKDB standard sur la production et la base de données restaurée.

Microsoft recommande également d'augmenter la fréquence de ces tests de sécurité lorsque l'évaluation et implémenter les modifications apportées à l'environnement ou si des problèmes surviennent relatives à la stabilité de l'environnement.

Pour savoir comment utiliser la SQLIOStress utilitaire, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
231619 Comment utiliser l'utilitaire SQLIOStress pour sous contraintes un sous-système de disque tel que SQL Server

La base de données TEMPDB

Il est possible afin de rechercher la base de données TEMPDB sur certains systèmes de mise en cache. Plusieurs facteurs doivent être considérés comme et testées lors de l'évaluation l'emplacement de stockage de la base de données TEMPDB dans cette configuration soigneusement. L'article suivant de la base de connaissances Microsoft met en évidence les exigences d'E / S, les associé prise en charge des limites et gains de performances possibles.
917047 Configuration requise de sous-système e / S Microsoft SQL Server pour la base de données TEMPDB

Prise en charge

Prise en charge Microsoft SQL Server aidera les clients, qui utilisent les techniques de récupération de données standard. Si les produits installés sur l'ordinateur dessiner l'intégrité des données en question, Microsoft SQL Server, Active Directory et prise en charge Exchange peut demander que le produit est désinstallé et va pas engager dans l'analyse de cause racine tant que tel le problème peut être reproduit sans cette produit.

Microsoft ne certifie pas et valider que des produits tiers fonctionnent correctement avec SQL Server. En outre, Microsoft ne fournit pas les garantie, garantie ou déclaration d'adéquation d'un produit tiers pour une utilisation avec SQL Server.

Références

Avec soin les informations supplémentaires fournies par les références suivantes pour évaluer l'amélioration des performances de SQL Server :

826433 Diagnostics SQL Server supplémentaires ajoutés pour détecter des problèmes d'E / S non signalés
828339 Message d'erreur 823 peut indiquer des problèmes de matériel ou des problèmes de système dans SQL Server
234656 L'aide de la mise en cache disque avec SQL Server
110352 Optimisation des performances de Microsoft SQL Server
304261 Description de la prise en charge des fichiers de base de données réseau dans SQL Server
910716 Prise en charge des solutions de mise en miroir à distance tiers utilisés avec SQL Server 2000 et 2005 utilisateur bases de données
913945 Microsoft ne certifie pas que les produits tiers fonctionneront avec Microsoft SQL Server
SQL Server nécessite systèmes afin de prendre en charge ? garantie remise aux médias stable ? comme indiqué dans le programme Microsoft SQL Server Always-On stockage solution analyse. FO Pour plus d'informations sur les exigences entrées 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 :
967576 Microsoft SQL Server Database Engine entrée/sortie configuration

Propriétés

Numéro d'article: 917043 - Dernière mise à jour: vendredi 2 novembre 2007 - Version: 1.5
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 7.0 Standard
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2000 Édition Entreprise
  • Microsoft SQL Server 2000 Édition Développeur
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Édition Personelle
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Mots-clés : 
kbmt kbexpertiseadvanced kbinfo KB917043 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 917043
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