Espacio libre de registros de transacciones (\%)

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

Monitor de espacio disponible en el registro de transacciones (\%) para bases de datos de SQL en Windows. Nota: Este monitor está deshabilitado de manera predeterminada. Use invalidaciones para habilitarlo cuando sea necesario.

Knowledge Base article:

Resumen

Monitor de espacio disponible en el registro de transacciones (%) para bases de datos de SQL

Causas

Si hay poco espacio disponible en todos los archivos de registro, se genera un estado incorrecto. El poco espacio disponible se puede deber a:

Use el siguiente vínculo para ver los datos de rendimiento:

Datos de rendimiento de la base de datos

Este monitor agrega el espacio disponible para cada archivo de registro de una base de datos según su configuración:

Sin crecimiento automático

Para un archivo que no tenga crecimiento automático, el espacio disponible será la diferencia entre el tamaño inicial de un archivo y el espacio usado.

Crecimiento automático habilitado

Además de la diferencia entre el tamaño de archivo y el espacio usado, el espacio disponible para los archivos con crecimiento automático habilitado sería el mínimo de la diferencia entre el tamaño máximo y el tamaño de archivo y el espacio disponible restante en el disco.

El poco espacio disponible para los archivos de registro de la base de datos que tienen crecimiento automático puede significar que el archivo se acerca a los límites de la unidad lógica de hospedaje. En el caso de los archivos que tienen habilitado el crecimiento automático con un tamaño máximo, el poco espacio disponible también puede significar que el archivo se acerca al tamaño máximo especificado para él.

Además, en los cálculos de espacio disponible se tiene en cuenta que el archivo también puede dejar de crecer si la cantidad de crecimiento del archivo es mayor que la cantidad restante en el disco y que el archivo no puede crecer si la diferencia entre el tamaño máximo y el tamaño de archivo actual es menor que la cantidad de crecimiento. En estas situaciones, el espacio disponible que queda en el disco no se incluye como parte del espacio disponible porque no puede crecer más.

Resoluciones

Para solucionar este problema puede:

Vea los Libros en pantalla de SQL Server: Arquitectura de archivos y grupos de archivos.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de la alerta

Define la prioridad de alerta.

Normal

Gravedad de la alerta

Define la gravedad de alerta.

Error

Tamaño de archivo máximo de Azure (MB)

Tamaño máximo del archivo de datos almacenado en Azure BLOB Storage. El flujo de trabajo considerará este valor como capacidad de almacenamiento máxima para cada archivo.

1048576

Habilitado

Habilita o deshabilita el flujo de trabajo.

No

Genera alertas.

Define si el flujo de trabajo genera una alerta.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

300

Número de ejemplos

Indica cuántas veces debe superar un umbral un valor medido antes de que cambie el estado.

6

Umbral

El valor recopilado se comparará con este parámetro.

10

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

200

Element properties:

TargetMicrosoft.SQLServer.Windows.Database
Parent MonitorMicrosoft.SQLServer.Windows.Rollup.Database.DBSpace
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Database.TransactionLogSpaceFreePercent
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL en Windows: el espacio disponible (\%) del registro de transacciones es demasiado bajo
El espacio disponible (\%) en el registro de transacciones de la base de datos "{0}" de la instancia de SQL "{1}" del equipo "{2}" es insuficiente. Vea la pestaña "Contexto de alerta" para obtener más detalles.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.TransactionLogSpaceFreePercent" Accessibility="Public" Enabled="true" 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/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</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>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<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>
<HealthCalcMode>1</HealthCalcMode>
<ValuePropertyName>DBLogFreeSpacePercent</ValuePropertyName>
<Value2PropertyName>DBLogFreeSpaceMB</Value2PropertyName>
<Threshold>10</Threshold>
<Value2Threshold>5000</Value2Threshold>
<NumSamples>6</NumSamples>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>