DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 873235 - Dernière mise à jour: vendredi 12 juillet 2013 - Version: 5.1

Sommaire

INTRODUCTION

Cet article décrit les étapes que vous devez effectuer lorsque les journaux des transactions deviennent trop volumineux. Votre base de données Microsoft SQL Server peut devenir inutilisable en raison des journaux saturés des transactions. Cet article décrit comment tronquer et réduire les journaux des transactions, et comment les empêcher de croître de façon inattendue.

Plus d'informations

Réduction de la taille des journaux des transactions

Lorsque les journaux des transactions sont saturés, vous devez réduire leur taille. Pour cela, vous devez tronquer les transactions inactives dans votre journal des transactions et réduire la taille du fichier du journal des transactions.

Remarque Les journaux des transactions sont très importants pour conserver l'intégrité transactionnelle de la base de données. Par conséquent, vous ne devez pas supprimer les fichiers du journal des transactions même après une sauvegarde de votre base de données et des journaux des transactions.


Pour plus d'informations sur la réduction de la taille des journaux des transactions, visitez le site Web de Microsoft à l'adresse suivante :
Réduction du journal des transactions pour SQL Server 2000 (http://msdn.microsoft.com/fr-fr/library/aa174524(v=sql.80).aspx)
Réduction du journal des transactions pour SQL Server 2005 (http://technet.microsoft.com/fr-fr/library/ms178037(SQL.90).aspx)

Tronquer les transactions inactives dans votre journal des transactions

Lorsque les journaux des transactions sont saturés, vous devez immédiatement sauvegarder le fichier de votre journal des transactions. Pendant la création de la sauvegarde des fichiers de votre journal des transactions, SQL Server tronque automatiquement la partie inactive du journal des transactions. Cette partie inactive du fichier du journal des transactions contient les transactions terminées et par conséquent, le fichier du journal des transactions n'est plus utilisé par SQL Server au cours du processus de récupération. SQL Server réutilise cet espace tronqué et inactif du journal des transactions au lieu d'autoriser le journal des transactions à continuer de grandir et à utiliser plus d'espace.

Pour plus d'informations sur les problèmes que vous devez prendre en compte lorsque vous effectuez une sauvegarde des journaux des transactions et lorsque vous restaurez les sauvegardes du journal des transactions, reportez-vous aux rubriques suivantes dans la documentation en ligne de SQL Server :
  • Sauvegardes du journal des transactions
  • Sauvegarde et restauration du journal des transactions
Vous pouvez également supprimer les transactions inactives dans un fichier du journal des transactions à l'aide de la méthode Tronquer. Pour plus d'informations sur la troncation des journaux des transactions, reportez-vous à la rubrique « Truncating the transaction log » (Troncation du journal des transactions) de la documentation en ligne sur SQL Server.

Important Une fois que vous avez manuellement tronqué les fichiers du journal des transactions, vous devez créer une sauvegarde complète de la base de données avant de créer une sauvegarde du journal des transactions.

Pour plus d'informations sur les problèmes qui peuvent se produire lorsque vous tronquez les fichiers du journal des transactions, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
62866  (http://support.microsoft.com/kb/62866/fr/ ) Raisons pour lesquelles le journal des transactions SQL n'est pas tronqué

Réduire le fichier du journal des transactions

L'opération de sauvegarde ou la méthode Tronquer ne réduit pas la taille du fichier journal. Pour cela, vous devez réduire la taille du fichier du journal des transactions. Pour réduire un fichier du journal des transactions à la taille demandée et pour supprimer les pages inutilisées, vous devez utiliser l'opération DBCC SHRINKFILE. L'instruction DBCC SHRINKFILE Transact-SQL peut uniquement réduire la partie inactive dans le fichier journal.

Remarque L'instruction DBCC SHRINKFILE Transact-SQL ne peut pas tronquer le journal et réduire l'espace utilisé dans le fichier journal seul.

Pour plus d'informations sur la réduction des fichiers du journal des transactions, reportez-vous aux rubriques suivantes de la documentation en ligne de SQL Server :
  • Réduction du journal des transactions
  • DBCC SHRINKFILE
Pour plus d'informations sur la procédure à suivre pour réduire les fichiers du journal des transactions dans SQL Server 2000, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
272318  (http://support.microsoft.com/kb/272318/fr/ ) Réduction du journal de transactions dans SQL Server 2000 avec DBCC SHRINKFILE
Pour plus d'informations sur les problèmes qui peuvent se produire lorsque vous réduisez la taille des fichiers du journal des transactions, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
814574  (http://support.microsoft.com/kb/814574/fr/ ) PROBLÈME : Message d'erreur : « Impossible de réduire le fichier journal... » lorsque vous réduisez la taille du fichier du journal des transactions
324432  (http://support.microsoft.com/kb/324432/fr/ ) PROBLÈME : Les commandes DBCC SHRINKFILE et SHRINKDATABASE peuvent ne pas fonctionner à cause des colonnes text, ntext ou image peu remplies

Empêcher les fichiers du journal des transactions de croître de façon inattendue

Pour empêcher les fichiers du journal des transactions de croître de façon inattendue, envisagez d'utiliser l'une des méthodes suivantes :
  • Définissez la taille des fichiers du journal des transactions sur une grande valeur pour éviter l'expansion automatique des fichiers du journal des transactions.
  • Configurez l'expansion automatique des fichiers du journal des transactions à l'aide des unités de mémoire au lieu d'un pourcentage une fois que vous avez évalué la taille de mémoire optimale.

    Pour plus d'informations sur les problèmes à prendre en compte lorsque vous configurez l'option d'étendue automatique, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
    315512  (http://support.microsoft.com/kb/315512/fr/ ) Éléments à prendre en compte pour configurer l'étendue et la réduction automatiques
  • Modifiez le mode de récupération. Si un accident ou une altération des données se produit, vous devez récupérer votre base de données afin que sa cohérence et son intégrité transactionnelle soient conservées. En fonction du caractère critique de vos données dans la base de données, vous pouvez utiliser l'un des modes de récupération suivants pour déterminer la façon dont vos données sont sauvegardées et le type d'exposition de la perte de données :
    • Mode de récupération simple
    • Mode de récupération complète
    • Mode de récupération utilisant les journaux de transactions
    En utilisant le mode de récupération simple, vous pouvez récupérer votre base de données au niveau de sa sauvegarde la plus récente. Avec le mode de récupération complète ou le mode de récupération utilisant les journaux de transaction, vous pouvez récupérer votre base de données au niveau de la défaillance en la restaurant avec les sauvegardes du fichier du journal des transactions.

    Par défaut, dans SQL Server 2000 et SQL Server 2005, le mode de récupération d'une base de données SQL Server est défini sur Mode de récupération complète. Avec le mode de récupération complète, les sauvegardes régulières du journal des transactions sont utilisées pour empêcher que la taille du fichier du journal des transactions ne grandisse hors de proportion pour atteindre la taille de la base de données. Toutefois, si les sauvegardes régulières du journal des transactions ne sont pas exécutées, le fichier du journal des transactions grandit et remplit le disque, et il est possible que vous ne soyez pas en mesure d'exécuter des opérations de modification des données sur la base de données SQL Server.

    Vous pouvez remplacer le mode de récupération complète en simple si vous ne souhaitez pas utiliser les fichiers du journal des transactions pendant une opération de récupération d'urgence.
  • Sauvegardez régulièrement les fichiers du journal des transactions pour supprimer les transactions inactives dans votre journal des transactions.
  • Créez des petites transactions.
  • Assurez-vous qu'aucune transaction enregistrée ne continue à s'exécuter sur une période indéfinie.
  • Planifiez l'option Mettre à jour les statistiques pour qu'elle s'exécute chaque jour.
  • Pour défragmenter les index pour optimiser la performance de la charge de travail dans votre environnement de production, utilisez l'instruction DBCC INDEXDEFRAG Transact-SQL au lieu de l'instruction DBCC DBREINDEX Transact-SQL. Si vous exécutez l'instruction DBCC DBREINDEX, le journal des transactions peut se développer considérablement lorsque votre base de données SQL Server est en mode de récupération complète. En outre, l'instruction de DBCC INDEXDEGRAG ne conserve pas longtemps les verrouillages, contrairement à l'instruction DBCC DBREINDEX.

    Pour plus d'informations sur la défragmentation des index dans SQL Server 2000, reportez-vous au site Web de Microsoft à l'adresse suivante :
    Pratiques recommandées pour la défragmentation d'index dans Microsoft SQL Server 2000 (http://technet.microsoft.com/fr-fr/library/cc966523.aspx)
    Si vous devez exécuter l'instruction DBCC DBREINDEX comme une tâche qui fait partie du plan de maintenance de la base de données, vous devez diviser la tâche en plusieurs tâches. De plus, vous devez effectuer des sauvegardes fréquentes des journaux des transactions entre l'exécution des tâches.

Plus d'informations sur les fichiers des journaux des transactions

Dans SQL Server 2000 et SQL Server 2005, chaque base de données contient au moins un fichier de données et un fichier du journal des transactions. SQL Server stocke physiquement les données dans le fichier de données. Le fichier du journal des transactions enregistre les détails de toutes les modifications que vous apportez à votre base de données SQL Server ainsi que les détails des transactions qui ont exécuté chaque modification. Comme l'intégrité transactionnelle est considérée comme une caractéristique fondamentale et intrinsèque de SQL Server, l'enregistrement des détails des transactions ne peut pas être désactivé dans SQL Server.

Le fichier du journal des transactions est logiquement divisé en segments plus petits qui sont connus sous le nom de fichiers journaux virtuels. Dans SQL Server 2000, vous pouvez configurer le fichier du journal des transactions pour qu'il se développe comme vous le souhaitez. L'expansion de journal des transactions peut être gérée par l'utilisateur ou configurée pour utiliser tout l'espace disque disponible. Toutes les modifications apportées par SQL Server à la taille du fichier du journal des transactions telles que la troncation des fichiers du journal des transactions ou l'agrandissement des fichiers du journal des transactions, sont exécutées dans des unités des fichiers journaux virtuels.

Si le fichier du journal des transactions qui correspond à une base de données SQL Server est complet et si vous avez défini l'option des fichiers du journal des transactions sur un agrandissement automatique, le fichier du journal des transactions se développe dans des unités des fichiers journaux virtuels. Parfois, le fichier du journal des transactions peut devenir très volumineux et vous pouvez risquer de ne plus disposer d'espace disque. Lorsqu'un fichier du journal des transactions grandit jusqu'à ce que le fichier journal utilise tout l'espace disque disponible et qu'il ne peut plus se développer, vous ne pouvez plus exécuter d'opération de modification des données sur votre base de données. En outre, SQL Server peut marquer votre base de données comme suspecte à cause du manque d'espace pour l'expansion du journal des transactions.

Pour plus d'informations sur les scénarios qui peuvent provoquer l'agrandissement du fichier du journal des transactions de façon inattendue, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
317375  (http://support.microsoft.com/kb/317375/fr/ ) Le journal des transactions augmente de manière inattendue ou est saturé sur un ordinateur SQL Server

Références

Pour plus d'informations sur la façon de résoudre les problèmes d'espace disque supplémentaire minimal requis au cours du processus de récupération, reportez-vous à la rubrique « Insufficient Disk Space » (Espace disque insuffisant) dans la documentation SQL Server en ligne. Pour plus d'informations sur l'architecture du journal des transactions, reportez-vous aux rubriques suivantes de la documentation en ligne de SQL Server :
  • Architecture du journal des transactions
  • Architecture logique du journal des transactions
  • Architecture physique du journal des transactions
Pour plus d'informations sur les modes de récupération dans SQL Server 2000, reportez-vous aux rubriques suivantes de la documentation en ligne de SQL Server :
  • Sélection d'un mode de récupération
  • Récupération simple
  • Récupération complète
  • Récupération utilisant les journaux de transactions
  • Autres modes de récupération


Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Mots-clés : 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235
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.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store