Monitor de espacio disponible en el registro de transacciones (\%) para bases de datos de 2012
Monitor de espacio disponible en el registro de transacciones (%) para bases de datos de SQL 2012
Estado incorrecto producido cuando hay poco espacio libre disponible en todos los archivos de registro. La escasez de espacio libre puede deberse a:
Valores de configuración de archivo no adecuados (tamaño, tamaño máximo, crecimiento automático, etc.)
Espacio no adecuado restante en los medios
Ausencia de copias de seguridad periódicas
El registro no se trunca
La configuración “Incluir espacio en disco” para este monitor se ha establecido en FALSE para las cargas de trabajo que esperan que crezcan sus archivos.
Utilice 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á 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.
Para solucionar este problema puede:
Aumentar el tamaño asignado a los archivos de registro si el crecimiento automático está deshabilitado.
Aumentar el valor de tamaño máximo para un archivo de registro si el crecimiento automático está habilitado.
Habilitar el crecimiento automático para un archivo como mínimo.
Mover los archivos de registro a otra unidad con más espacio disponible si el espacio de crecimiento es limitado.
Realizar copias de seguridad periódicas de los archivos de registro para los modos de recuperación FULL y BULK-LOGGED.
Investigar el motivo por el que no se trunca el registro:
Transacciones activas de ejecución prolongada abiertas
Operaciones de copia de seguridad de ejecución prolongada
Transacción replicada abierta durante mucho tiempo (replicación transaccional)
Retraso de reflejo con respecto al servidor principal (creación de reflejo de la base de datos)
Establezca la configuración "Incluir espacio en disco" para este monitor en TRUE para las cargas de trabajo que esperan que crezcan sus archivos.
Modificar los umbrales de este monitor para que se adapte a la carga de trabajo.
Por otro lado, si el espacio disponible de los archivos de registro no constituye un problema para la base de datos:
Deshabilite este monitor para esta base de datos específica o para todas las bases de datos.
Vea los Libros en pantalla de SQL Server: Arquitectura de archivos y grupos de archivos.
Nombre | Descripción | Valor predeterminado |
Prioridad de alerta | Define la prioridad de la alerta. | Normal |
Gravedad de alerta | Define la gravedad de la alerta. | Error |
Habilitado | Habilita o deshabilita el flujo de trabajo. | No |
Genera alertas | Define si el flujo de trabajo genera una alerta. | Sí |
Intervalo (segundos) | Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo. | 900 |
Umbral | Valor del umbral de alerta | 10 |
Tiempo de espera (segundos) | Especifica el tiempo durante el que se permite el flujo de trabajo para ejecutarse antes de cerrarse y de marcarse como incorrecto. | 300 |
Target | Microsoft.SQLServer.2012.Database | ||
Parent Monitor | Microsoft.SQLServer.2012.Database.DBSpaceMonitor | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercent.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercentMonitor" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="Microsoft.SQLServer.2012.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercent.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercentMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</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>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<Threshold>10</Threshold>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
</Configuration>
</UnitMonitor>