Espace libre de fichier de base de données restant

Microsoft.SQLServer.2016.Monitoring.DBFileSpaceMonitor (UnitMonitor)

Ce moniteur envoie un avertissement lorsque l’espace libre (y compris l’espace déjà alloué et l’espace libre sur le support) passe sous le paramètre de seuil d’avertissement, exprimé sous forme de pourcentage de la somme de la taille de données et de l’espace disque libre. Le moniteur envoie une alerte critique lorsque l’espace libre passe sous le seuil critique.

Knowledge Base article:

Résumé

L’analyse surveille l’espace disponible dans le fichier et sur le support hébergeant le fichier. L’espace disponible sur le support est uniquement pris en compte si la croissance automatique est activée pour le fichier donné.

Causes

Le fonctionnement anormal est dû à un espace libre insuffisant pour ce fichier. Un espace libre insuffisant peut être causé par :

Utilisez le lien suivant pour consulter les données de performances : Données de performances de l’espace libre du fichier de la base de données

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

Avec la croissance automatique activée, l'espace disque libre est inclus dans l'espace libre total. En plus de la différence entre la taille du fichier et l'espace utilisé, l'espace libre pour les fichiers avec la croissance automatique activée est la valeur minimale obtenue en calculant la différence entre la taille maximale ou la taille du fichier et l'espace libre restant sur le disque.

Un espace disponible faible pour les fichiers de base de données avec croissance automatique 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 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 libre, puisque la croissance n'est plus possible.

Solutions

Ce problème peut être résolu en :

Consultez la documentation en ligne de SQL Server : Architecture des fichiers et des groupes de fichiers

Paramètres remplaçables

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

Taille de fichier Azure maximale (en Mo)

Taille maximale du fichier de données stocké dans Stockage Blob Azure. Le workflow considère cette valeur comme une capacité de stockage maximale pour chaque fichier.

1048576

Seuil critique

Le moniteur passe à l'état Critique si la valeur tombe sous ce seuil. L’état d’avertissement est attribué au moniteur si la valeur est comprise entre ce seuil et le seuil d’avertissement inclus.

10

Activé

Active ou désactive le flux de travail.

Oui

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

Heure de synchronisation

L'heure de synchronisation spécifiée dans un format de 24 heures. Peut être omise.

 

Délai d'expiration (en secondes)

Spécifie la durée pendant laquelle le workflow est autorisé à être exécuté avant d'être fermé et marqué comme un échec.

300

Seuil d'avertissement

Le moniteur passe à l’état Avertissement si la valeur tombe sous ce seuil.

20

Element properties:

TargetMicrosoft.SQLServer.2016.DBFile
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBFileSizeMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016 : l’espace est insuffisant pour le fichier de la base de données
L’espace est insuffisant pour le fichier de base de données « {0} » pour le groupe de fichiers « {1} » de la base de données « {2} » dans l’instance SQL « {3} » sur l’ordinateur « {4} ». Pour plus d’informations, consultez la section sur les connaissances.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Monitoring.DBFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.DBFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitoring.DBFileSpaceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.FileGroup"]/GroupName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Error"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>SQL DB File</ObjectName>
<CounterName>DB File Free Space (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileID$</DBFileId>
<Value>$Data/Property[@Name='FreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
</Configuration>
</UnitMonitor>