Spazio disponibile del log delle transazioni (\%)

Microsoft.SQLServer.Windows.Monitor.Database.TransactionLogSpaceFreePercent (UnitMonitor)

Monitoraggio dello spazio disponibile (\%) nel log delle transazioni per i database SQL per Windows. Nota: per impostazione predefinita, questo monitoraggio è disabilitato. Usare gli override per abilitarlo quando necessario.

Knowledge Base article:

Riepilogo

Monitoraggio spazio disponibile nel log delle transazioni (%) per il database SQL

Cause

Uno stato non integro viene determinato nel caso in cui lo spazio disponibile per tutti i file di log sia insufficiente. Lo spazio disponibile può risultare insufficiente per i motivi seguenti:

Usare il collegamento seguente per visualizzare i dati sulle prestazioni:

Dati sulle prestazioni del database

Questo monitoraggio aggrega lo spazio disponibile per ogni file di log all'interno di un database a seconda della configurazione di ogni file:

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

Oltre alla differenza tra le dimensioni del file e lo spazio usato, lo spazio disponibile per i file con l'opzione di aumento automatico abilitata corrisponde al valore più basso della differenza tra le dimensioni massime e le dimensioni del file e lo spazio disponibile su disco.

Lo spazio disponibile insufficiente per i file di log 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.

Risoluzioni

Per risolvere il problema, procedere nel modo seguente:

Vedere l'argomento della documentazione online di SQL Server Architettura di file e filegroup

Parametri di cui è possibile eseguire l'override

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

Attivato

Abilita o disabilita il flusso di lavoro.

No

Genera avvisi

Definisce se il flusso di lavoro genera un avviso.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

300

Numero di campioni

Indica quante volte un valore misurato deve violare una soglia prima che venga modificato lo stato.

6

Soglia

Il valore raccolto verrà confrontato con questo parametro.

10

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

200

Element properties:

TargetMicrosoft.SQLServer.Windows.Database
Parent MonitorMicrosoft.SQLServer.Windows.Rollup.Database.DBSpace
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Database.TransactionLogSpaceFreePercent
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL per Windows: Lo spazio disponibile nel log delle transazioni (\%) è troppo basso
Lo spazio disponibile del log delle transazioni (\%) del database "{0}" nell'istanza SQL "{1}" sul computer "{2}" è insufficiente. Per altre informazioni, vedere la scheda relativa al contesto dell'avviso.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.TransactionLogSpaceFreePercent" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Microsoft.SQLServer.Windows.Rollup.Database.DBSpace" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.TransactionLogSpaceFreePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Database.TransactionLogSpaceFreePercent.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<ObjectName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/PerformanceCounterObject$:TransactionLog</ObjectName>
<CounterName>Log Free Space (%)</CounterName>
<PerfInstanceName/>
<ValuePropertyName>DBLogFreeSpacePercent</ValuePropertyName>
<Threshold>10</Threshold>
<NumSamples>6</NumSamples>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>