O monitor relata um aviso quando o espaço livre em disco (incluindo tanto o espaço já alocado quanto o espaço livre na mídia) cai abaixo da configuração do Limite de Aviso, expresso como percentual da soma do tamanho dos dados, mais o espaço livre em disco. O monitor relata um alerta crítico quando o espaço livre cai abaixo do Limite Crítico.
O monitor supervisiona o espaço disponível em um arquivo de log e na mídia que hospeda o arquivo de log. O espaço disponível na mídia será considerado como parte do espaço disponível se o crescimento automático estiver habilitado em pelo menos um dos arquivos.
Um estado não íntegro é causado pelo pouco espaço livre em todos os arquivos de log. O pouco espaço livre pode ser causado 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
Use os seguintes links para exibir os dados de desempenho: Dados de desempenho de espaço livre no log de arquivos 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 livre 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 livre para arquivos com crescimento automático habilitado será o mínimo da diferença entre o tamanho máximo e o tamanho do arquivo e o espaço livre restante em disco.
O pouco espaço livre 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 livre também pode significar que o arquivo está chegando ao tamanho máximo especificado para um arquivo.
Os cálculos de espaço livre também levam em consideração que o arquivo poderá não crescer o valor de crescimento do arquivo for maior que o valor deixado no disco, e se a diferença entre os tamanhos máximo e atual do arquivo for menor que o valor do crescimento. Nesses casos, o espaço livre disponível restante em disco não será incluído como parte do espaço livre porque não é possível que o arquivo continue a crescer.
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)
Modificando os limites deste monitor para se adequar à carga de trabalho
Alternativamente, se o espaço livre 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 o tópico nos Manuais Online do SQL Server: Arquitetura de arquivos e grupos de arquivos
Nome | Descrição | Valor padrão |
Prioridade do Alerta | Define a Prioridade do Alerta. | Normal |
Severidade do Alerta | Define a Severidade do Alerta. | Erro |
Tamanho Máximo de Arquivo Azure (MB) | O tamanho máximo do arquivo de dados armazenado no Armazenamento BLOB do Azure. O fluxo de trabalho considerará esse valor como a capacidade máxima de armazenamento para cada arquivo. | 1.048.576 |
Limite Crítico | O estado do monitor será alterado para crítico se o valor cair abaixo desse limite. Se estiver entre esse limite e o limite de aviso (inclusive), isso fará com que o monitor fique estado de aviso. | 10 |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Gerar Alertas | Define se o fluxo de trabalho gera um Alerta. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho. | 900 |
Hora da Sincronização | A hora da sincronização especificada usando um formato de 24 horas. Pode ser omitido. |
|
Tempo Limite (segundos) | Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha. | 300 |
Limite de alerta | O estado do monitor será alterado para Aviso se o valor cair abaixo desse limite. | 20 |
Target | Microsoft.SQLServer.2016.DBLogFile | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.DBLogFileSizeMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.Monitoring.DBLogFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.DBLogFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBLogFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitoring.DBLogFileSpaceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter6>
</AlertParameters>
</AlertSettings>
<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="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileID$</DBFileId>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
</Configuration>
</UnitMonitor>