Symptômes

Lorsque vous démarrez une instance de Microsoft SQL Server ou restaurez ou attachez une base de données, un message d’information 9017 semblable au suivant est enregistré dans le journal des erreurs SQL Server :

Base de données dbName a plus de fichiers journaux virtuels n qui est excessive. Trop de fichiers journaux virtuels peuvent entraîner des temps de sauvegarde et de démarrage plus long. Considérer la réduction du journal et à l’aide d’un incrément de croissance différent afin de réduire le nombre de fichiers journaux virtuels.
Trop de fichiers journaux virtuels peuvent affecter le temps de récupération de la base de données.

En outre, si vous utilisez des technologies de réplication ou la mise en miroir de base de données dans votre environnement, vous pouvez remarquer des problèmes de performances avec ces technologies.

Cause

Ce problème se produit lorsque vous spécifiez des petites valeurs pour le paramètre de la croissance du fichier pour votre fichier journal.

Le moteur de base de données SQL Server divise chaque fichier journal physique en interne dans plusieurs fichiers journaux virtuels (virtuels). SQL Server 2008 R2 Service Pack 2 et versions ultérieures a introduit un nouveau message (9017) qui est enregistré lorsqu’une base de données démarre (soit en raison du démarrage d’une instance de SQL Server ou l’attachement ou la restauration de la base de données) et dispose de plus de 1 000 fichiers de journaux virtuels dans SQL Server 2008 R2 ou a des fichiers journaux virtuels de plus de 10 000 dans SQL Server 2012.

Remarque  Dans SQL Server 2012 bien que ce message est consigné lorsque la base de données a des fichiers journaux virtuels de 10 000, le message réel qui est rapporté de manière incorrecte dans le journal des erreurs indique « fichier journal virtuel de 1000 ». En fait, l’avertissement se produit après 10 000 fichiers de journaux virtuels. Toutefois, le message signale les 1 000 fichiers de journaux virtuels. Ce problème sera corrigé dans une prochaine version.

Pour plus d’informations sur comment l’augmentation du nombre de fichiers journaux virtuels peut entraîner des problèmes de performances dans la réplication ou les configurations de mise en miroir de la base de données, consultez la section « Informations complémentaires ».

Résolution

Pour résoudre ce problème, procédez comme suit :

  1. Réduisez votre journal des transactions à l’aide de DBCC SHRINKDB ou à l’aide de SQL Server Management Studio.

  2. Augmenter la taille du journal de transactions à une valeur supérieure pour éviter les croissances automatiques fréquentes. Pour plus d’informations, consultez la rubrique suivante sur le site Web de la documentation en ligne de SQL Server :

    http://msdn.microsoft.com/en-us/library/ms365418.aspx#AddOrEnlarge

  3. Augmentez le paramètre de la croissance du fichier à une valeur plus grande que celle actuellement. Cela devrait se faire selon l’activité de votre base de données et augmente la fréquence à laquelle votre fichier journal.


En outre, nous vous recommandons d’envisager d’installer les correctifs suivants, selon la version de SQL Server en cours d’exécution :

CORRECTIF : Elle prend beaucoup de temps pour restaurer une base de données dans SQL Server 2008 R2, SQL Server 2008 ou dans SQL Server 2012

CORRECTIF : Ralentissement des performances lorsque vous restaurez une base de données, s’il y a de nombreux fichiers de journaux virtuels dans le journal des transactions dans SQL Server 2005, SQL Server 2008 ou SQL Server 2008 R2

CORRECTIF : La base de données principale n’est pas récupérée si la base de données a un grand nombre de fichiers journaux virtuels dans SQL Server 2005 ou SQL Server 2008

CORRECTIF : La récupération prend plus longtemps que prévu pour une base de données dans un environnement SQL Server 2008 ou SQL Server 2008 R2


Plus d'informations

Comment vérifier le nombre de segments du fichier journal virtuel dans une base de données

Vous pouvez trouver le nombre de segments du fichier journal virtuel dans une base de données en recherchant la différence entre le premier et les dernier journal des numéros (LSNs) de sauvegardes du journal des transactions pour la base de données.

Vous pouvez trouver le LSN de la sauvegarde du journal des transactions en vérifiant le journal des erreurs SQL Server pour un message semblable au suivant :

{Sauvegarde du journal. Base de données : mydbname, creation_date_(time) : date(heure), premier LSN : 1: 5068:70, dernier LSN : 1: 5108:1, le nombre d’unités de vidage : 1, des informations de périphérique : (fichier = 1, TYPE = disque : {'C:\folder\logbackup1.trn'}). Il s’agit d’un message d’information uniquement. Aucune action utilisateur n’est requise.


Remarque  Dans ce message, le LSN du journal des transactions est 1. (Il est le premier nombre avant le signe deux-points dans « LSN : 1:5068:70. »)

Pour ce faire, procédez comme suit :

  1. Trouver le LSN de la première sauvegarde du journal des transactions pour la base de données dans votre journal des erreurs SQL (LSN, par exemple : 1:5108:1).

  2. Trouver le dernier LSN de la sauvegarde du journal des transactions dans le journal des erreurs SQL (par exemple, LSN:10, 235 : 5108 : 1).

  3. Le nombre de segments du fichier journal virtuel est la différence entre le dernier LSN et séquence le plus ancien (dans ce cas, il est 10,235-1 = 10,234).


L’effet d’une pluralité de fichiers journaux virtuels sur la réplication

Trop de fichiers journaux peuvent affecter la réplication, car le processus de lecture du journal doit analyser chaque fichier journal virtuel pour les transactions marquées pour la réplication. Vous pouvez constater ce comportement en traçant les performances de la procédure sp_replcmds stockées. Le lecteur de journal processus la sp_replcmds des procédures stockées pour analyser les fichiers journaux virtuels et de lire les transactions qui sont marquées pour la réplication. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

949523 le temps de latence de la réplication transactionnelle est élevé dans SQL Server 2005 lorsque la valeur de la propriété « Taille initiale » et la valeur de la propriété de croissance automatique sont de petite taille

L’effet d’une pluralité de fichiers journaux virtuels sur la mise en miroir de base de données

Trop de fichiers journaux peuvent également affecter la mise en miroir de base de données. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2455009 correctif : Lenteur d’exécution lorsque vous restaurer une base de données, s’il y a de nombreux fichiers de journaux virtuels dans le journal des transactions dans SQL Server 2005, SQL Server 2008 ou SQL Server 2008 R2

Références

Pour plus d’informations, consultez les rubriques suivantes sur le site Web de Microsoft Developer Network (MSDN) :

Réduction du journal des transactions

Facteurs qui peuvent retarder la troncature du journal

Troncature de journal

Architecture logique du journal des transactions

Architecture physique du journal des transactions


Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?

Qu’est-ce qui a affecté votre expérience ?

Avez-vous d’autres commentaires ? (Facultatif)

Nous vous remercions pour vos commentaires.

×