Monitor de Espaço Livre (\%) no Log de Transações para Bancos de Dados 2012
Monitor de Espaço Livre (%) no Log de Transações para Bancos de Dados SQL 2012
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:
Configurações de arquivo inadequadas (tamanho, tamanho máximo, crescimento automático etc.)
Espaço inadequado na mídia
Falta de backups regulares periódicos
Não truncamento do log
A configuração “Incluir Espaço em Disco” deste monitor é definida como FALSE para cargas de trabalho que esperam o crescimento de seus arquivos.
Use o seguinte link para exibir os dados de desempenho:
Dados de Desempenho do 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 log 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.
Este problema pode ser resolvido de uma das seguintes maneiras:
Aumentando o tamanho alocado dos arquivos de log, caso o crescimento automático esteja desabilitado
Aumentando o valor do tamanho máximo de um arquivo de log, caso o crescimento automático esteja habilitado
Habilitando o crescimento automático de, pelo menos, um arquivo
Movendo arquivos de log para outra unidade com mais espaço livre, caso o espaço de crescimento seja limitado
Executando backups regulares de arquivos de log para modos de recuperação FULL e BULK-LOGGED
Investigue por que o log não está sendo truncado:
Transações ativas abertas de longa execução
Operações de backup de longa execução
Transação replicada aberta por um longo período (Replicação Transacional)
Retardo do espelhamento atrás do servidor principal (Espelhamento do Banco de Dados)
Defina a configuração “Incluir Espaço em Disco” deste monitor como TRUE para cargas de trabalho que esperam o crescimento de seus arquivos.
Modificando os limites deste monitor para se adequar à carga de trabalho
Como alternativa, se o espaço disponível do arquivo de log não for um problema para o banco de dados:
Desabilite este monitor para esse banco de dados específico ou para todos os bancos de dados
Consulte os Manuais Online do SQL Server: Arquitetura de arquivos e grupos de arquivos
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>
</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>
<ObjectName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$:TransactionLog</ObjectName>
<CounterName>Log Free Space (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBLogFreeSpacePercent']$</Value>
</Configuration>
</UnitMonitor>