ANAVEM
Languageen
Windows Event Viewer displaying ESENT database recovery logs on a professional monitoring dashboard
Event ID 5888InformationESENTWindows

ID d'événement Windows 5888 – ESENT : Récupération de la base de données terminée avec succès

L'ID d'événement 5888 indique que le moteur de stockage extensible (ESENT) a terminé avec succès les opérations de récupération de la base de données, généralement lors du démarrage du système ou après un arrêt inattendu.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 mars 202612 min de lecture 0
Event ID 5888ESENT 5 méthodes 12 min
Référence événement

Signification de cet événement

L'ID d'événement 5888 représente l'achèvement réussi des opérations de récupération de la base de données ESENT au sein du système d'exploitation Windows. ESENT (Extensible Storage Engine) sert de technologie de base de données fondamentale pour de nombreux composants critiques de Windows, rendant cet événement particulièrement significatif pour la surveillance de la santé du système.

Lorsque Windows subit un arrêt inattendu ou un crash système, les bases de données ESENT peuvent se retrouver dans un état incohérent. Lors du prochain démarrage du système, ESENT initie automatiquement des procédures de récupération pour restaurer l'intégrité de la base de données. Ce processus implique la relecture des transactions non validées à partir des fichiers journaux, l'annulation des opérations incomplètes et la garantie que toutes les pages de la base de données sont cohérentes.

Le processus de récupération suit une approche structurée : d'abord, ESENT scanne l'en-tête de la base de données pour déterminer le dernier état cohérent, puis traite les fichiers journaux de transactions en séquence pour rejouer les transactions validées qui n'ont pas été écrites dans la base de données avant l'interruption. Enfin, il effectue des vérifications de cohérence pour vérifier l'intégrité de la base de données.

L'événement 5888 confirme que toute cette séquence de récupération s'est terminée avec succès, offrant aux administrateurs la confiance que la base de données affectée est désormais dans un état cohérent et utilisable. Les détails de l'événement incluent généralement le chemin du fichier de la base de données, la durée de récupération en millisecondes, le nombre de fichiers journaux traités, et parfois des métriques de performance supplémentaires qui aident à évaluer l'efficacité de l'opération de récupération.

S'applique à

Windows 10Windows 11Windows Server 2019/2022/2025
Analyse

Causes possibles

  • System startup following an unexpected shutdown or power failure
  • Recovery after a Blue Screen of Death (BSOD) or system crash
  • Service restart after abnormal termination of ESENT-dependent applications
  • Database consistency check completion after forced system restart
  • Automatic recovery following disk I/O errors or storage subsystem issues
  • Recovery operations triggered by Windows Update installations requiring system restarts
  • Database repair completion after running ESENTUTL repair commands
Méthodes de résolution

Étapes de dépannage

01

Examiner les détails de l'événement dans l'Observateur d'événements

Commencez par examiner les détails complets de l'événement pour comprendre quelle base de données a été récupérée et la durée de la récupération.

  1. Ouvrez Observateur d'événements en appuyant sur Win + R, en tapant eventvwr.msc, et en appuyant sur Entrée
  2. Accédez à Journaux WindowsApplication
  3. Filtrez le journal en cliquant sur Filtrer le journal actuel dans le volet Actions
  4. Définissez l'ID d'événement sur 5888 et les sources d'événements sur ESENT
  5. Double-cliquez sur l'événement pour voir des informations détaillées incluant :
    • Chemin du fichier de base de données
    • Durée de la récupération
    • Nombre de fichiers journaux traités
    • Toutes les métriques de récupération supplémentaires

Utilisez PowerShell pour extraire des informations détaillées :

Get-WinEvent -FilterHashtable @{LogName='Application'; Id=5888; ProviderName='ESENT'} -MaxEvents 10 | Format-List TimeCreated, Id, LevelDisplayName, Message
Astuce pro : Recherchez des motifs dans les temps de récupération - des durées de récupération constamment longues peuvent indiquer des problèmes de performance de stockage ou une fragmentation de la base de données.
02

Analyser la fréquence et les schémas de récupération

Déterminez si des récupérations fréquentes de la base de données indiquent des problèmes de stabilité sous-jacents du système.

  1. Interrogez les occurrences récentes de l'événement 5888 en utilisant PowerShell :
$StartDate = (Get-Date).AddDays(-30)
$Events = Get-WinEvent -FilterHashtable @{LogName='Application'; Id=5888; ProviderName='ESENT'; StartTime=$StartDate}
$Events | Group-Object {$_.TimeCreated.Date} | Sort-Object Name | Format-Table Name, Count -AutoSize
  1. Vérifiez les événements d'arrêt du système correspondants (ID d'événement 1074) qui pourraient être corrélés avec les récupérations :
Get-WinEvent -FilterHashtable @{LogName='System'; Id=1074; StartTime=$StartDate} | Select-Object TimeCreated, @{Name='ShutdownReason';Expression={($_.Message -split '\n')[4]}}
  1. Examinez le journal système pour les arrêts inattendus (ID d'événement 6008) :
Get-WinEvent -FilterHashtable @{LogName='System'; Id=6008; StartTime=$StartDate} | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap
Avertissement : Des récupérations multiples quotidiennes peuvent indiquer des problèmes matériels, des problèmes d'alimentation ou des conflits logiciels nécessitant une attention immédiate.
03

Identifier les bases de données et services ESENT affectés

Déterminez quelles bases de données et services spécifiques sont impliqués dans les opérations de récupération.

  1. Extraire les chemins de base de données à partir des messages de l'événement 5888 :
$Events = Get-WinEvent -FilterHashtable @{LogName='Application'; Id=5888; ProviderName='ESENT'} -MaxEvents 50
$Events | ForEach-Object {
    if ($_.Message -match 'Database: (.+?)\s') {
        [PSCustomObject]@{
            TimeCreated = $_.TimeCreated
            DatabasePath = $matches[1]
        }
    }
} | Group-Object DatabasePath | Sort-Object Count -Descending
  1. Vérifiez quels services Windows utilisent des bases de données ESENT en examinant les dépendances de service :
Get-Service | Where-Object {$_.ServicesDependedOn -like '*ESENT*'} | Select-Object Name, Status, DisplayName
  1. Vérifiez l'intégrité des fichiers de base de données en utilisant ESENTUTL :
# Remplacez par le chemin réel de la base de données à partir des détails de l'événement
$DatabasePath = "C:\Path\To\Database.edb"
esentutl /g "$DatabasePath" /v
  1. Vérifiez les tailles des fichiers de base de données et les heures de dernière modification :
Get-ChildItem -Path "C:\Windows\System32\config" -Filter "*.edb" -Recurse -ErrorAction SilentlyContinue | Select-Object Name, Length, LastWriteTime, FullName
04

Surveiller les performances du système pendant la récupération

Évaluer l'impact sur les performances du système lors des opérations de récupération de la base de données.

  1. Activer la journalisation détaillée d'ESENT pour capturer plus d'informations de récupération :
# Activer la journalisation diagnostique d'ESENT
New-ItemProperty -Path "HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\ESENT" -Name "CategoryMessageFile" -Value "%SystemRoot%\System32\esent.dll" -PropertyType String -Force
New-ItemProperty -Path "HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\ESENT" -Name "CategoryCount" -Value 14 -PropertyType DWord -Force
  1. Surveiller les E/S disque pendant la récupération à l'aide de Performance Monitor :
# Créer un ensemble de collecteurs de données de compteur de performance
$DataCollectorSet = "ESENT_Recovery_Monitor"
logman create counter $DataCollectorSet -c "\PhysicalDisk(*)\Disk Reads/sec" "\PhysicalDisk(*)\Disk Writes/sec" "\PhysicalDisk(*)\Avg. Disk Queue Length" -si 5 -f csv -o "C:\Temp\esent_recovery.csv"
  1. Vérifier la pression sur la mémoire pendant les opérations de récupération :
Get-Counter "\Memory\Available MBytes", "\Memory\Committed Bytes", "\Paging File(_Total)\% Usage" | Format-Table -AutoSize
  1. Examiner les traces de Windows Performance Toolkit si disponibles :
# Vérifier les traces ETL existantes
Get-ChildItem -Path "C:\Windows\System32\LogFiles\WMI" -Filter "*.etl" | Where-Object {$_.LastWriteTime -gt (Get-Date).AddHours(-24)}
Conseil pro : Planifiez régulièrement la défragmentation de la base de données ESENT pendant les fenêtres de maintenance pour réduire les temps de récupération et améliorer les performances.
05

Évaluation avancée de la santé de la base de données et optimisation

Effectuer des vérifications complètes de l'état de la base de données et mettre en œuvre des stratégies d'optimisation.

  1. Exécuter des vérifications complètes de l'intégrité de la base de données sur toutes les bases de données ESENT :
# Script pour vérifier toutes les bases de données ESENT
$ESENTDatabases = @(
    "C:\Windows\System32\config\SOFTWARE",
    "C:\Windows\System32\config\SYSTEM",
    "C:\Windows\System32\config\SECURITY",
    "C:\Windows\System32\config\SAM"
)

foreach ($db in $ESENTDatabases) {
    if (Test-Path $db) {
        Write-Host "Vérification de la base de données : $db"
        esentutl /g "$db" /v
    }
}
  1. Configurer des paramètres avancés ESENT pour de meilleures performances de récupération :
# Optimiser les paramètres de cache ESENT
$ESENTKey = "HKLM\SYSTEM\CurrentControlSet\Services\ESENT\Parameters"
Set-ItemProperty -Path $ESENTKey -Name "Cache Size Max" -Value 1024 -Type DWord
Set-ItemProperty -Path $ESENTKey -Name "Log Buffer Size" -Value 2048 -Type DWord
  1. Mettre en œuvre une maintenance automatisée de la base de données à l'aide du Planificateur de tâches :
# Créer une tâche planifiée pour la maintenance de la base de données
$Action = New-ScheduledTaskAction -Execute "esentutl.exe" -Argument "/d C:\Path\To\Database.edb"
$Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 2:00AM
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "ESENT_Database_Maintenance" -Action $Action -Trigger $Trigger -Settings $Settings -User "SYSTEM"
  1. Surveiller les tendances de récupération à long terme à l'aide de rapports PowerShell personnalisés :
# Générer un rapport de tendance de récupération
$Report = Get-WinEvent -FilterHashtable @{LogName='Application'; Id=5888; ProviderName='ESENT'; StartTime=(Get-Date).AddDays(-90)} | 
    ForEach-Object {
        $RecoveryTime = if ($_.Message -match 'Recovery completed in (\d+) milliseconds') { [int]$matches[1] } else { 0 }
        [PSCustomObject]@{
            Date = $_.TimeCreated.Date
            RecoveryTimeMs = $RecoveryTime
            Database = if ($_.Message -match 'Database: (.+?)\s') { $matches[1] } else { 'Unknown' }
        }
    } | Group-Object Date | ForEach-Object {
        [PSCustomObject]@{
            Date = $_.Name
            RecoveryCount = $_.Count
            AvgRecoveryTime = ($_.Group | Measure-Object RecoveryTimeMs -Average).Average
            MaxRecoveryTime = ($_.Group | Measure-Object RecoveryTimeMs -Maximum).Maximum
        }
    }

$Report | Export-Csv -Path "C:\Temp\ESENT_Recovery_Report.csv" -NoTypeInformation
Avertissement : Sauvegardez toujours les bases de données avant d'exécuter des opérations de réparation ou d'optimisation. Testez les modifications dans un environnement non productif d'abord.

Aperçu

L'ID d'événement 5888 de la source ESENT (Extensible Storage Engine) se déclenche lorsque Windows termine avec succès les opérations de récupération de base de données. Cet événement apparaît généralement dans le journal des applications lors du démarrage du système, en particulier après un arrêt inattendu, une panne de courant ou un redémarrage forcé. ESENT est le moteur de base de données intégré de Microsoft utilisé par de nombreux composants Windows, y compris Active Directory, Exchange, Windows Search et divers services système.

L'événement indique qu'ESENT a restauré avec succès la cohérence de la base de données en rejouant les journaux de transactions et en assurant l'intégrité des données. Bien qu'il s'agisse généralement d'un événement positif montrant une récupération réussie, des occurrences fréquentes peuvent indiquer des problèmes de stabilité sous-jacents du système. L'événement fournit des informations cruciales sur le temps de récupération de la base de données, le nombre de fichiers journaux traités et la base de données spécifique qui a subi une récupération.

Les administrateurs système doivent surveiller cet événement pour comprendre les schémas de récupération de base de données et identifier les problèmes potentiels avec les services qui dépendent des bases de données ESENT. Les détails de l'événement incluent le chemin de la base de données, la durée de la récupération et les informations sur les journaux de transactions qui peuvent aider à diagnostiquer les préoccupations de performance ou de stabilité.

Questions Fréquentes

Que signifie l'ID d'événement 5888 et est-il normal de voir cet événement ?+
L'ID d'événement 5888 indique que ESENT (Extensible Storage Engine) a terminé avec succès les opérations de récupération de la base de données. Cet événement est normal et attendu après les redémarrages du système, surtout après des arrêts inattendus ou des pannes de courant. Il confirme que Windows a restauré avec succès la cohérence de la base de données et que les bases de données affectées sont prêtes à être utilisées. Cependant, si vous voyez cet événement plusieurs fois par jour, cela peut indiquer des problèmes de stabilité sous-jacents du système qui nécessitent une enquête.
Comment puis-je déterminer quelle base de données spécifique a été récupérée lorsque l'événement 5888 se produit ?+
Le message de l'événement 5888 contient le chemin complet vers la base de données récupérée. Vous pouvez trouver cette information en ouvrant le Visualiseur d'événements, en localisant l'événement et en examinant le message détaillé. Le chemin de la base de données est généralement indiqué comme 'Database: [chemin]' dans la description de l'événement. Les bases de données ESENT courantes incluent les ruches de registre (SOFTWARE, SYSTEM, SECURITY, SAM), les bases de données de recherche Windows et les bases de données spécifiques aux applications. Vous pouvez également extraire cette information de manière programmatique en utilisant PowerShell pour analyser le contenu du message de l'événement.
Pourquoi est-ce que je vois fréquemment l'événement 5888, et devrais-je m'en inquiéter ?+
Des occurrences fréquentes de l'événement 5888 peuvent indiquer des problèmes d'instabilité du système tels que des arrêts inattendus, des problèmes d'alimentation, des défaillances matérielles ou des conflits logiciels. Bien que des événements de récupération occasionnels soient normaux, des occurrences quotidiennes suggèrent d'enquêter sur la cause profonde. Vérifiez les événements d'arrêt correspondants (ID d'événement 1074, 6008), examinez la santé du matériel du système, vérifiez la stabilité de l'alimentation électrique et examinez les journaux d'applications pour les plantages. Des récupérations fréquentes peuvent également affecter les performances du système et augmenter le risque de corruption des données si les problèmes sous-jacents ne sont pas résolus.
Combien de temps la récupération de la base de données ESENT devrait-elle généralement prendre, et qu'est-ce qui affecte le temps de récupération ?+
Le temps de récupération de la base de données ESENT varie considérablement en fonction de la taille de la base de données, du nombre de journaux de transactions à rejouer, des performances de stockage et des ressources système. Les petites bases de données se rétablissent généralement en millisecondes à quelques secondes, tandis que les bases de données plus grandes peuvent prendre plusieurs minutes. Les facteurs influençant le temps de récupération incluent les performances d'E/S du disque, la mémoire disponible, le niveau de fragmentation de la base de données et le nombre de transactions non validées. Si la récupération prend systématiquement plus de temps que prévu, envisagez la défragmentation de la base de données, l'optimisation du stockage ou des mises à niveau matérielles. Surveillez les temps de récupération via les détails de l'Événement 5888 pour établir des métriques de performance de référence.
Puis-je empêcher l'événement 5888 de se produire, et devrais-je essayer de le supprimer ?+
Vous ne pouvez pas et ne devez pas empêcher l'événement 5888 de se produire, car il représente un processus critique de récupération de base de données qui garantit l'intégrité des données. Tenter de supprimer ou de désactiver la récupération ESENT risquerait de corrompre la base de données et de provoquer une instabilité du système. Concentrez-vous plutôt sur la prévention des conditions qui déclenchent la récupération : assurez des arrêts corrects du système, maintenez une alimentation électrique stable, résolvez rapidement les problèmes matériels et gardez les systèmes à jour. L'événement lui-même est informatif et bénéfique pour surveiller la santé du système. Plutôt que de le supprimer, utilisez l'événement 5888 comme un outil de diagnostic pour identifier et résoudre les problèmes de stabilité sous-jacents.
Documentation

Références (2)

Emanuel DE ALMEIDA
Écrit par

Emanuel DE ALMEIDA

Senior IT Journalist & Cloud Architect

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...