Monitor de Espaço Livre (\%) no Log de Transações para Bancos de Dados 2016. Observação: Esse monitor está desabilitado por padrão. Use substituições para permitir, quando necessário.
Monitor de Espaço Livre (%) no Log de Transações para Bancos de Dados SQL 2016
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
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 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 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 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)
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
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 |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Não |
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. | 300 |
Número de amostras | Indica quantas vezes um valor medido deve violar um limite antes do estado ser alterado. | 6 |
Limite | O valor coletado será comparado com esse parâmetro. | 10 |
Tempo Limite (segundos) | Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha. | 180 |
Target | Microsoft.SQLServer.2016.Database | ||
Parent Monitor | Microsoft.SQLServer.2016.Database.DBSpaceMonitor | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.Database.TransactionLogSpaceFreePercent.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.Database.TransactionLogSpaceFreePercentMonitor" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="Microsoft.SQLServer.2016.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.Database.TransactionLogSpaceFreePercent.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Database.TransactionLogSpaceFreePercentMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.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>300</IntervalSeconds>
<TimeoutSeconds>180</TimeoutSeconds>
<Threshold>10</Threshold>
<ConnectionString>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/PerformanceCounterObject$:TransactionLog</ObjectName>
<CounterName>Log Free Space (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBLogFreeSpacePercent']$</Value>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<NumSamples>6</NumSamples>
</Configuration>
</UnitMonitor>