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.
Le moniteur surveille l'espace disponible dans le fichier et sur le support qui héberge le fichier. L'espace disponible sur le support est pris en compte uniquement si la croissance automatique est activée pour le fichier donné.
Le fonctionnement anormal est dû à un espace libre insuffisant pour ce fichier. Un espace libre insuffisant peut être causé par :
Paramètres de configuration de fichier inadéquats (taille, taille maximale, croissance automatique, etc.)
d'un espace restant sur le support inadéquat.
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
Aucune croissance automatique
Pour un fichier sans croissance automatique, l'espace libre 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 disponible 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 libre insuffisant 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 libre insuffisant 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.
Ce problème peut être résolu en :
Augmentation de la taille allouée d'un fichier ou de tous les fichiers d'un groupe de fichiers si la croissance automatique est désactivée
Augmentation de la valeur de la taille maximale d'un fichier si la croissance automatique est activée
Activation de la croissance automatique pour au moins un fichier
déplaçant les fichiers vers un autre lecteur disposant de davantage d'espace libre si l'espace de croissance est limité ;
Modification des seuils pour ce moniteur en fonction de la charge de travail
Sinon, si l'espace libre pour le groupe de fichiers n'est pas un critère important pour la base de données :
Désactiver ce moniteur pour ce groupe de fichiers spécifique ou pour tous les groupes de fichiers
Consultez la documentation en ligne de SQL Server : Architecture des fichiers et des groupes de fichiers
Nom | Description | Valeur par défaut |
Priorité d'alerte | Définit la priorité de l'alerte. | Normale |
Gravité d'alerte | Définit la gravité de l'alerte. | Erreur (error) |
Taille maximale des fichiers Azure (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. | Non |
Intervalle (en secondes) | Intervalle régulier (en secondes) auquel exécuter le flux de travail. | 900 |
Heure de synchronisation | Heure de la synchronisation spécifiée selon un format de 24 heures. Peut être omise. |
|
Délai d'expiration (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 |
Délai d’attente pour la connexion de base de données (secondes) | Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée. | 15 |
Seuil d'avertissement | Le moniteur passe à l’état Avertissement si la valeur tombe sous ce seuil. | 20 |
Target | Microsoft.SQLServer.Linux.DBFile | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Linux.MonitorType.DBFile.DBFileSpace | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.DBFile.DBFileSpace" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBFile" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.DBFile.DBFileSpace" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.DBFile.DBFileSpace.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter7>
</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>
<MachineName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<FileName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</FileName>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<ValuePropertyName>FreeSpacePercent</ValuePropertyName>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>