Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Partez du principe que vous utilisez le groupe de disponibilité AlwaysOn d’une base de données Microsoft SQL Server 2012 ou SQL Server 2014 et qu’une grande transaction active ouverte existe et que vous avez besoin d’un espace journal supplémentaire. Lorsque le fichier journal ne peut pas augmenter pour l’une des raisons suivantes, la transaction échoue.

  • Espace de fichier supplémentaire manquant

  • Le fichier journal est configuré de manière à ne pas grandir

  • Le fichier journal a atteint sa taille maximale configurée

En outre, le message d'erreur suivant s'affiche :

Erreur : 9002, gravité : 17, État : 9. le journal de transactions de la base de données <le nom de la base de données> 'est plein en raison de « log_backup ».

Après avoir exécuté une sauvegarde du journal, vous recevez un autre message d’erreur 9002 :

Erreur : 9002, gravité : 17, État : 9. le journal de transactions de la base de données <le nom de la base de données> 'est plein en raison de « ACTIVE_TRANSACTION ».

Après une sauvegarde du journal, vous recevez un autre message d’erreur 9002 suivi d’un message d’erreur 5901 :

Erreur : 9002, gravité : 17, État : 9. le journal de transactions de la base de données <le nom de la base de données> 'est plein en raison de « AVAILABILITY_REPLICA ».

Impossible d’écrire un enregistrement de point de contrôle dans la base de données <nom de la base de données>, car le journal est en dehors de l’espace. Contactez l’administrateur de base de données pour tronquer le journal ou allouer plus d’espace aux fichiers journaux de la base de données. Erreur : 5901, gravité : 16, État : 1. au moins une unité de récupération de la base de données « <nom de la base de données> » n’a pas pu générer de point de contrôle. En règle générale, ce problème est dû au manque de ressources système, telles que le disque ou la mémoire, ou dans certains cas de corruption de la base de données. Pour plus d’informations sur cet échec, examinez les entrées précédentes dans le journal des erreurs.

Lorsque les sauvegardes de point de contrôle ou de journal ultérieures sont alors prises lors de la restauration de la transaction, vous pouvez recevoir le message d’erreur suivant :

MSG 3052, niveau 16, état 1, ligne 4BACKUP journal n’a pas pu enregistrer les mises à jour de la base de données <nom de la base de données>». Des sauvegardes de journaux ultérieures seront nécessaires pour faire progresser le point de sauvegarde de' <LSN ID 1> 'à' <lsn ID 2> 'après que l’espace du journal est mis à disposition pour les journaux.

Lorsque vous recevez ces messages, vous n’êtes plus en mesure de transmettre de nouvelles transactions à la base de données, et vous ne pouvez pas agrandir le fichier journal ou ajouter un autre fichier journal.

Résolution

Le problème a été résolu dans la mise à jour cumulative suivante de SQL Server :

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Nous vous recommandons de télécharger et d’installer les dernières mises à jour cumulatives pour SQL Server :

Solution de contournement

Vous pouvez utiliser la solution de contournement suivante pour tronquer les journaux et les activités de reprise.

  1. Vérifiez que les réplicas secondaires vérifient le last_hardened_lsn de réplica secondaire (voir sys.dm_hadr_database_replica_states) correspondant à la last_hardened_lsnde réplica principal. Pour cela, exécutez la requête suivante qui est connectée à l’instance de réplica principal.

    SELECT ags.name as AGGroupName,    ar.replica_server_name as InstanceName,    hars.role_desc,    db_name(drs.database_id)as DBName,    drs.last_hardened_lsn, drs.log_send_queue_size,    drs.synchronization_state_desc as SyncState,    ar.availability_mode_desc as SyncMode,    CASE drs.is_local WHEN 1 THEN drs.database_id ELSE NULL END as database_id    FROM sys.dm_hadr_database_replica_states drs    LEFT JOIN sys.availability_replicas ar ON drs.replica_id = ar.replica_id    LEFT JOIN sys.availability_groups ags  ON ar.group_id = ags.group_id    LEFT JOIN sys.dm_hadr_availability_replica_states hars        ON ar.group_id = hars.group_id and ar.replica_id = hars.replica_id      WHERE db_name(drs.database_id) = '<database name>'
  2. Sur le réplica principal

    • Supprimez la base de données du groupe disponibilité.

    • Rajoutez la base de données dans le groupe disponibilité.

  3. Sur chaque réplica secondaire

    • Rajoutez la base de données dans le groupe disponibilité.

En supprimant la base de données du groupe disponibilité, elle tronque immédiatement ses journaux et libère l’espace journal. Si le last_hardened_lsn de chaque réplica secondaire est identique au réplica principal, et qu’il n’y a pas de sauvegarde du journal lors de la suppression de la base de données du groupe de disponibilité et de l’ajout de la base de données sur chacun d’eux, le réplica secondaire sera de nouveau ajouté sans erreur ou n’aura pas besoin de restaurer les sauvegardes du journal sur le secondaire. S’il n’y a pas de réplica secondaire et que vous devez supprimer la base de données du groupe de disponibilité avant que le secondaire puisse le retrouver, il est possible que le réplica secondaire doive disposer de sauvegardes de journaux restaurées pour le détecter avant de le rajouter au groupe de disponibilité, ou de le réamorcer avec une sauvegarde de la base de données du journal des transactions

Statut

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×