Espaço do Arquivo de Log do Banco de Dados

Microsoft.SQLServer.2008.Monitoring.DBLogFileSpaceMonitor (UnitMonitor)

Monitora o espaço disponível em um arquivo de log e na mídia que hospeda o log em termos percentuais.

Knowledge Base article:

Resumo

Monitora o espaço disponível nos arquivos de log e na mídia que hospeda esses arquivos. O espaço disponível na mídia que hospeda os arquivos de log será incluído apenas como parte do espaço disponível se o crescimento automático for habilitado para, pelo menos, um dos arquivos.

Causas

Um estado não íntegro é causado pelo pouco espaço disponível em todos os arquivos de log. A insuficiência de espaço disponível pode ser ocasionada por:

Use os seguintes links para exibir os dados de desempenho: Dados de Desempenho do Espaço Livre no Log de Arquivos de Banco de Dados

Este monitor agrega o espaço disponível para cada arquivo de log em um banco de dados, dependendo da configuração de cada arquivo:

Sem Crescimento Automático

Para um arquivo sem crescimento automático, o espaço disponível será a diferença entre o tamanho inicial de um arquivo e o espaço utilizado.

Crescimento Automático Habilitado

Além da diferença entre o tamanho do arquivo e o espaço utilizado, o espaço disponível para arquivos com crescimento automático habilitado será o valor mínimo da diferença entre o tamanho máximo e o tamanho do arquivo, e o espaço livre deixado no disco.

A insuficiência de espaço disponível para os arquivos de banco de dados com crescimento automático pode significar que o arquivo está chegando ao limite da unidade lógica de hospedagem. Para arquivos com crescimento automático habilitado e tamanho máximo, a insuficiência de espaço disponível também pode significar que o arquivo está chegando ao tamanho máximo especificado para um arquivo.

Os cálculos de espaço disponível também levam em consideração que o arquivo poderá não crescer se o valor de crescimento do arquivo for maior que o valor deixado no disco, e se a diferença entre o tamanho máximo e o tamanho atual do arquivo for menor que o valor do crescimento. Nesses casos, o espaço livre disponível deixado no disco não será incluído como parte do espaço disponível porque não é possível crescer mais.

Resoluções

Este problema pode ser resolvido de uma das seguintes maneiras:

Consulte o tópico nos Manuais Online do SQL Server: Arquitetura de Arquivos e Grupos de Arquivos

Element properties:

TargetMicrosoft.SQLServer.2008.DBLogFile
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.DBLogFileSizeMonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Monitoring.DBLogFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2008Core!Microsoft.SQLServer.2008.DBLogFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBLogFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Error"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$ : Database : DB File</ObjectName>
<CounterName>DB Log File Free Space (%)</CounterName>
<InstanceName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBFile"]/FileName$</InstanceName>
<DatabaseName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL!Microsoft.SQLServer.DBFile"]/FileID$</DBFileId>
<Value>$Data/Property[@Name='FreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>