Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique décrit les réponses possibles à un journal des transactions complet et suggère comment l’éviter à l’avenir. Quand le journal des transactions est saturé, le moteur de base de données SQL Server émet une erreur 9002. Le journal peut se remplir lorsque la base de données est en ligne ou en cours de récupération. Si le journal se remplit tandis que la base de données est en ligne, la base de données reste en ligne mais elle peut uniquement être lue, et pas être mise à jour. Si le journal se remplit pendant la récupération, le moteur de base de données marque la base de données comme EN ATTENTE DE RESSOURCES. Dans les deux cas, une intervention de l'utilisateur est nécessaire pour libérer de l'espace disque.
Réponse à un journal des transactions complet
La réponse appropriée à un journal des transactions complet dépend en partie de la condition ou des conditions à l’origine du remplissage du journal. Pour découvrir ce qui empêche la troncation du journal dans un cas donné, utilisez les colonnes log_reuse_wait et log_reuse_wait_desc de la vue du catalogue sys.database. Pour plus d’informations, consultez sys.databases (Transact-SQL). Pour obtenir des descriptions des facteurs qui peuvent retarder la troncation du journal, consultez le journal des transactions (SQL Server) .
Important
Si la base de données était en récupération lorsque l’erreur 9002 s’est produite, après avoir résolu le problème, récupérez la base de données à l’aide de ALTER DATABASE database_name SET ONLINE.
Les alternatives pour répondre à un journal des transactions complet sont les suivantes :
Sauvegarde du journal.
Libérer de l’espace disque afin que le journal puisse croître automatiquement.
Déplacement du fichier journal vers un lecteur de disque avec suffisamment d’espace.
Augmentation de la taille d’un fichier journal.
Ajout d’un fichier journal sur un autre disque.
Achèvement ou interruption d’une transaction de longue durée.
Ces alternatives sont présentées dans les sections suivantes. Choisissez une réponse qui correspond le mieux à votre situation.
Sauvegarde du journal
Sous le modèle de récupération complète ou le modèle de récupération journalisé en bloc, si le journal des transactions n’a pas été sauvegardé récemment, la sauvegarde peut être ce qui empêche la troncation du journal. Si le journal n’a jamais été sauvegardé, vous devez en créer deux sauvegardes pour permettre au Moteur de base de données de le tronquer à l’endroit exact de la dernière sauvegarde. Le fait de tronquer le journal permet de libérer de l'espace pour les nouveaux enregistrements de ce dernier. Pour empêcher le journal de se remplir à nouveau, effectuez les sauvegardes régulièrement.
Pour créer une sauvegarde du journal des transactions
Important
Si la base de données est endommagée, consultez Tail-Log Sauvegardes (SQL Server).
Libérer de l’espace disque
Vous pouvez libérer de l'espace sur le disque où est stocké le fichier journal des transactions de la base de données en supprimant ou en déplaçant d'autres fichiers. Ceci permet au système de récupération d'augmenter automatiquement la taille du fichier journal.
Déplacement du fichier journal vers un autre disque
Si vous ne pouvez pas libérer suffisamment d’espace disque sur le lecteur qui contient actuellement le fichier journal, envisagez de déplacer le fichier vers un autre lecteur avec suffisamment d’espace.
Important
Les fichiers journaux ne doivent jamais être placés sur des systèmes de fichiers compressés.
Pour déplacer un fichier journal
Augmentation de la taille d’un fichier journal
Si le disque du journal dispose d'espace libre, vous pouvez augmenter la taille du fichier journal. La taille maximale des fichiers journaux est de deux téraoctets (To) par fichier journal.
Pour augmenter la taille du fichier
Si la croissance automatique est désactivée, la base de données est en ligne et un espace suffisant est disponible sur le disque, soit :
Augmentez manuellement la taille du fichier pour générer un seul incrément de croissance.
Activez la croissance automatique à l’aide de l’instruction ALTER DATABASE pour définir un incrément de croissance non zéro pour l’option FILEGROWTH.
Remarque
Dans les deux cas, si la limite de taille actuelle a été atteinte, augmentez la valeur MAXSIZE.
Ajout d’un fichier journal sur un autre disque
Ajoutez un nouveau fichier journal à la base de données sur un autre disque disposant d’un espace suffisant à l’aide de ALTER DATABASE <database_name> ADD LOG FILE.
Pour ajouter un fichier journal
Voir aussi
MODIFIER LA BASE DE DONNÉES (Transact-SQL)
Gérer la taille du fichier journal des transactions
Sauvegardes du journal des transactions (SQL Server)
sp_add_log_file_recover_suspect_db (Transact-SQL)