Il monitoraggio restituisce un avviso quando lo spazio disponibile (incluso lo spazio già allocato e lo spazio disponibile nel supporto) scende sotto l'impostazione della soglia di avviso, espressa come percentuale della somma delle dimensioni dei dati e dello spazio disponibile su disco. Il monitoraggio restituisce un avviso critico quando lo spazio disponibile scende sotto la soglia critica.
Il monitoraggio controlla lo spazio disponibile nel file e nel supporto che ospita il file. Lo spazio disponibile nel supporto viene considerato solo se l'opzione di aumento automatico è abilitata per il file specificato.
Uno stato non integro viene determinato nel caso in cui lo spazio disponibile per il file sia insufficiente. Lo spazio disponibile può risultare insufficiente per i motivi seguenti:
Le impostazioni di configurazione del file sono inadeguate (dimensioni, dimensioni massime, aumento automatico e così via)
Spazio rimanente nei supporti inadeguato
Per visualizzare i dati sulle prestazioni, usare il collegamento Dati sulle prestazioni spazio disponibile file database.
Nessun aumento automatico
Per un file senza aumento automatico, lo spazio disponibile corrisponde alla differenza tra le dimensioni iniziali di un file e lo spazio usato.
Aumento automatico abilitato
Se l'opzione di aumento automatico è abilitata, lo spazio disponibile su disco è incluso nello spazio disponibile complessivo. Oltre alla differenza tra le dimensioni del file e lo spazio usato, lo spazio disponibile per i file con opzione di aumento automatico abilitata corrisponde al valore più basso tra le dimensioni massime e le dimensioni del file e lo spazio disponibile su disco.
Lo spazio disponibile insufficiente per i file di database con aumento automatico può indicare che le dimensioni del file si stanno avvicinando ai limiti dell'unità logica di hosting. Per i file per i quali è abilitato l'aumento automatico con dimensioni massime, lo spazio disponibile insufficiente può indicare anche che le dimensioni del file si stanno avvicinando a quelle massime specificate per un file.
I calcoli dello spazio disponibile tengono inoltre conto del fatto che l'aumento delle dimensioni del file può non riuscire se il livello di aumento del file è maggiore della quantità di spazio disponibile sul disco e che le dimensioni del file non possono aumentare se la differenza tra le dimensioni massime e quelle correnti del file è minore dell'aumento. In questi casi, lo spazio disponibile su disco non è incluso nello spazio disponibile perché le dimensioni non possono aumentare ulteriormente.
Per risolvere il problema, procedere nel modo seguente:
Aumento delle dimensioni allocate per un file o per tutti i file all'interno di un filegroup se l'opzione di aumento automatico è disabilitata
Aumento del valore delle dimensioni massime di un file se l'opzione di aumento automatico è abilitata
Abilitazione dell'aumento automatico per almeno un file
Se lo spazio per l'aumento delle dimensioni è limitato, spostare i file in un'altra unità con maggiore spazio disponibile
Modificare le soglie del monitoraggio in funzione del carico di lavoro
In alternativa, se lo spazio disponibile per il filegroup non rappresenta un problema per il database, procedere nel modo seguente:
Disabilitare il monitoraggio per il filegroup specifico o per tutti i filegroup
Vedere l'argomento della documentazione online di SQL Server Architettura di file e filegroup
Nome | Descrizione | Valore predefinito |
Priorità avviso | Definisce la priorità dell'avviso. | Normale |
Gravità avviso | Definisce la gravità dell'avviso. | Errore |
Dimensioni massime del file in Azure (MB) | Dimensioni massime del file di dati archiviato nell'archiviazione BLOB di Azure. Il flusso di lavoro considera questo valore come la capacità di archiviazione massima per ogni file. | 1048576 |
Soglia critica | Lo stato del monitoraggio passerà a Critico se il valore scende sotto questa soglia. Se invece il valore si trova tra questa soglia e la soglia di avviso (inclusa), il monitoraggio passerà allo stato di avviso. | 10 |
Abilitato | Abilita o disabilita il flusso di lavoro. | Sì |
Genera avvisi | Definisce se il flusso di lavoro genera un avviso. | No |
Intervallo (secondi) | Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro. | 900 |
Tempo di sincronizzazione | Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa. |
|
Timeout (secondi) | Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito. | 300 |
Timeout per la connessione di database (secondi) | Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato. | 15 |
Soglia di avviso | Lo stato del monitoraggio passerà ad Avviso se il valore scende sotto questa soglia. | 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/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter3>
<AlertParameter4>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</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>FreeSpacePercentMon</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>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>