9002: The transaction log for database is full due to ... (le journal des transactions de la base est plein)
SQL ServerQue signifie cette erreur ?
Le fichier journal des transactions de la base de données est plein et les nouvelles transactions ne peuvent pas être journalisées. La base de données rejette les écritures et peut se comporter comme si elle était en lecture seule.
Cause
Absence de sauvegardes du journal dans le mode de récupération FULL, transaction ouverte depuis longtemps, retard de réplication/AlwaysOn, ou journal incapable de croître (autogrow désactivé ou disque plein). log_reuse_wait_desc indique la raison.
Comment la corriger
Vérifiez log_reuse_wait_desc dans sys.databases. S'il vaut LOG_BACKUP en mode FULL, effectuez une sauvegarde du journal (BACKUP LOG). S'il vaut ACTIVE_TRANSACTION, trouvez la transaction ouverte et validez-la/annulez-la (DBCC OPENTRAN). Libérez de l'espace disque ou corrigez le paramètre autogrow du fichier journal. Si le journal a réellement grossi, réduisez-le avec DBCC SHRINKFILE après la sauvegarde. Si vous n'avez pas besoin de la chaîne de journaux, revoyez le mode de récupération.
Autres entrées pour ce moteur
- 8152String or binary data would be truncated (les données chaîne ou binaires seraient tronquées)
- 2628String or binary data would be truncated in table, column ...; truncated value (données tronquées dans la table, la colonne ... ; valeur tronquée)
- 1222Lock request time out period exceeded (délai de la demande de verrou dépassé)
- 1105Could not allocate space for object in database because the filegroup is full (allocation d'espace impossible : groupe de fichiers plein)
- 208Invalid object name (nom d'objet invalide)
- 229The SELECT/EXECUTE permission was denied on the object (autorisation SELECT/EXECUTE refusée sur l'objet)
- 4060Cannot open database requested by the login. The login failed (impossible d'ouvrir la base demandée par le login ; échec de connexion)