Partager via


Présentation des performances de récupération dans SQL Server

Les performances de récupération concernent principalement la récupération suite à une panne et non la récupération après restauration d'une sauvegarde. Cependant, des optimisations sont possibles pour la récupération après restauration à partir d'une sauvegarde.

Le temps de récupération est fonction du volume de travail réalisé depuis le dernier point de contrôle, ainsi que du volume de travail effectué par toutes les transactions actives au moment de la perte des données. SQL Server utilise l'option de configuration recovery interval pour définir le nombre maximal de minutes dont il a besoin pour récupérer les bases de données. Ce paramètre recovery interval détermine la fréquence des points de contrôle. Pour un système de traitement transactionnel en ligne (OLTP, online transaction processing), qui utilise de petites transactions, le paramètre recovery interval est le principal facteur déterminant le temps de récupération.

Après installation, SQL Server attribue à l'option recovery interval la valeur zéro. Tant que le paramètre recovery interval a sa valeur par défaut et qu'il n'y a pas de transactions longues, le temps de récupération de chaque base de données ne dépasse normalement pas la minute. Lors de la récupération de données restaurées, si des transactions longues sont actives au moment de la perte de données, le temps de récupération est déterminé par le temps nécessaire à la restauration des effets de ces transactions. Cependant, dans SQL Server 2005 et versions ultérieures, la base de données est disponible pendant la phase de restauration d'une récupération suite à une panne ou d'un basculement de mise en miroir de bases de données, fonction qualifiée de récupération rapide.

Si vous constatez que la récupération prend souvent plus d'une minute par base de données, alors que le paramètre recovery interval est à zéro (0) et qu'il n'y a pas de transactions longues à restaurer, contactez votre revendeur pour résoudre ce problème de performances de récupération.

La récupération établit des rapports de progression (basés sur les fichiers journaux virtuels pour une base de données). La récupération commence par analyser et parcourir le journal à partir du dernier point de contrôle. En fonction de la phase d'analyse, la récupération estime la partie du journal à lire. La partie lue est utilisée pour suivre la progression de la récupération.

Si une valeur autre que la valeur par défaut est choisie pour le paramètre recovery interval, le temps de récupération de la base de données est multiplié d'autant. Par exemple, si recovery interval prend la valeur 10, la récupération prendra environ 10 fois plus longtemps que si recovery interval conservait sa valeur par défaut de zéro (0).

Dès que le journal devient relativement volumineux, utilisez plutôt des incréments de grande taille afin de réduire le temps de démarrage de Microsoft SQL Server. Plus les incréments de journaux sont petits, plus SQL Server mettra de temps à les initialiser.

Lors d'une récupération après une opération de restauration, laissez le serveur terminer le processus de restauration, si une transaction longue s'est terminée prématurément. L'arrêt du serveur pendant la restauration d'une transaction longue engendre une augmentation du temps de récupération. Si la restauration vous semble anormalement longue, demandez à votre administrateur système de vous confirmer la présence d'activité sur le serveur.

Si une panne se produit au cours d'une transaction longue, Microsoft SQL Server commence automatiquement une récupération. Dans ce cas, la vitesse de récupération augmente car la base de données est disponible pendant la phase de restauration.

Pour connaître les mesures permettant d'écourter la récupération lors de la restauration de données à partir de sauvegardes en mode de récupération complet, consultez Réduction du temps de récupération lors de la restauration d'une base de données.