Analyse de l'espace libre des journaux des transactions (\%) pour les bases de données 2012
Analyse de l’espace libre des journaux des transactions (%) pour base de données SQL 2012
L'état défectueux est dû à un espace disponible faible pour l'ensemble des fichiers journaux. Un espace disponible faible peut être provoqué par :
de paramètres de configuration de fichiers inadéquats (taille, taille maximum, croissance automatique, etc.) ;
Un espace restant inadéquat sur le support
Manque de sauvegardes régulières périodiques
Non-troncation du journal
Le paramètre « Inclure l'espace disque » pour ce moniteur est défini sur FALSE pour les charges de travail où une croissance des fichiers est attendue.
Utilisez le lien suivant pour consulter les données de performances :
Données de performances de la base de données
Ce moniteur agrège l'espace disponible pour chaque fichier journal dans une base de données selon la configuration de chaque fichier :
Pas de croissance automatique
Pour un fichier sans croissance automatique, l'espace disponible est la différence entre la taille initiale d'un fichier et l'espace utilisé.
Croissance automatique activée
En plus de la différence entre la taille du fichier et l'espace utilisé, l'espace disponible pour les fichiers ayant la croissance automatique activée est la valeur minimale de la différence entre la taille maximale et la taille du fichier, ou l'espace libre restant sur le disque.
Un espace disponible faible pour les fichiers journaux de base de données dont la croissance automatique est activée peut signifier que le fichier est proche des limites du lecteur logique hôte. Pour les fichiers dont la croissance automatique est activée avec une taille maximale, un espace disponible faible peut aussi signifier que le fichier est proche de la taille maximale spécifiée pour un fichier.
Les calculs d'espace disponible tiennent aussi compte du fait que le fichier peut ne pas réussir à croître si le volume de croissance du fichier est supérieur à celui restant disponible sur le disque, et aussi du fait que le fichier ne peut pas croître si la différence entre la taille maximale et la taille actuelle du fichier est inférieure au volume de croissance. Dans ces cas, l'espace libre restant sur le disque n'est pas inclus dans l'espace disponible, puisque la croissance n'est plus possible.
Ce problème peut être résolu en :
augmentant la taille allouée pour les fichiers journaux si la croissance automatique est désactivée ;
augmentant la valeur de taille maximale pour un fichier journal si la croissance automatique est activée ;
activant la croissance automatique pour au moins un fichier ;
déplaçant les fichiers journaux vers un autre lecteur disposant de davantage d'espace libre si l'espace de croissance est limité ;
effectuant des sauvegardes régulières des fichiers journaux pour les modes de récupération FULL et BULK-LOGGED ;
Recherchez pourquoi le journal n'est pas tronqué :
Transactions actives de longue durée ouvertes
Opérations de sauvegarde de longue durée
Transaction répliquée ouverte pendant un long moment (réplication transactionnelle)
Miroir en retard sur le serveur du principal (mise en miroir de bases de données)
Définissez le paramètre « Inclure l'espace disque » pour ce moniteur sur TRUE pour les charges de travail où une croissance des fichiers est attendue.
modifiant les seuils de cette analyse pour les adapter à la charge de travail.
Sinon, si l'espace disponible pour les fichiers journaux n'est pas un problème pour la base de données :
Désactivez cette analyse pour cette base de données spécifique ou toutes les bases de données
Consultez la documentation en ligne de SQL Server : Architecture des fichiers et des groupes de fichiers
Nom | Description | Valeur par défaut |
Priorité de l'alerte | Définit la priorité de l'alerte. | Normal |
Gravité de l'alerte | Définit la gravité de l'alerte. | Erreur |
Activé | Active ou désactive le flux de travail. | Non |
Génère des alertes | Définit si le flux de travail génère une alerte. | Oui |
Intervalle (en secondes) | L'intervalle de temps récurrent en secondes pendant lequel le workflow est exécuté. | 900 |
Seuil | Valeur du seuil d'alerte | 10 |
Délai d'attente (secondes) | Spécifie la durée pendant laquelle le flux de travail est autorisé à s'exécuter avant d'être fermé et marqué comme ayant échoué. | 300 |
Target | Microsoft.SQLServer.2012.Database | ||
Parent Monitor | Microsoft.SQLServer.2012.Database.DBSpaceMonitor | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercent.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercentMonitor" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="Microsoft.SQLServer.2012.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercent.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercentMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='DBLogFreeSpaceMB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='DBLogFreeSpacePercent']$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<Threshold>10</Threshold>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
</Configuration>
</UnitMonitor>