Este monitor detecta quando um destino de envio de logs não teve um log restaurado no limite definido como parte da configuração de envio de logs.
Observe que nenhuma edição do SQL Server Express é compatível com o Envio de Logs.
Este monitor detecta quando um destino de envio de logs não teve um log restaurado dentro do limite definido como parte da configuração de envio de logs. Quando essa condição ocorrer, o monitor passará para um estado crítico. Depois que as restaurações de log forem retomadas e estiverem dentro dos limites definidos, o monitor retornará a um estado íntegro. Por padrão, este monitor gerará alertas quando estiver em um estado de erro.
A sincronização do envio de logs está fora do limite de restauração. O limite de restauração é o número de minutos decorridos entre as operações de restauração antes que uma mensagem seja gerada.
Para solucionar esse problema:
Verifique se o serviço SQL Server Agent está sendo executado para a instância do servidor secundário e se o trabalho de restauração para esse banco de dados secundário está habilitado e agendado para ser executado na frequência apropriada.
O trabalho de restauração no servidor secundário pode estar com falha. Nesse caso, verifique o histórico de trabalhos do trabalho de restauração para procurar a causa.
O trabalho de restauração do envio de logs, que é executado na instância do servidor secundário, talvez não possa se conectar à instância do servidor monitor para atualizar a tabela log_shipping_monitor_secondary. Isso pode ser causado por um problema de autenticação entre a instância do servidor monitor e a instância do servidor secundário.
O limite de alerta de backup pode ter um valor incorreto. Idealmente, esse valor é definido como sendo pelo menos três vezes a frequência do trabalho de restauração. Se você alterar a frequência do trabalho de restauração após o envio de logs estar configurado e funcional, deverá atualizar o valor do limite do alerta de backup de maneira adequada.
Quando a instância do servidor monitor fica offline e depois volta a ficar online, a tabela log_shipping_monitor_secondary não é atualizada com os valores atuais antes da execução do trabalho de mensagem de alerta. O erro 14421 pode ser gerado quando um trabalho de restauração resulta em "Não foi possível localizar um arquivo de backup de log que pudesse ser aplicado ao banco de dados secundário." Quando isso ocorre, a hora da restauração não é atualizada. Nesse caso, a causa do erro pode ser um problema com o trabalho de cópia.
Para atualizar as tabelas do monitor com os dados mais recentes do banco de dados secundário, execute sp_refresh_log_shipping_monitor na instância do servidor secundário.
Na instância do servidor monitor ou secundário, a data ou a hora está incorreta. Isso também pode gerar mensagens de alerta. É possível que a data ou a hora do sistema tenha sido modificada em um deles.
Observação: fusos horários diferentes para as duas instâncias do servidor não devem causar um problema.
Tópico sobre envio de logs nos Manuais Online do SQL Server:
http://go.microsoft.com/fwlink/?LinkId=799310
Nome | Descrição | Valor Padrão |
Prioridade do Alerta | Define a Prioridade do Alerta. | Normal |
Severidade do Alerta | Define a Severidade do Alerta. | Erro |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Gera Alertas | Define se o fluxo de trabalho gera ou não um Alerta. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho. | 300 |
Tempo de Sincronização | O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido. |
|
Tempo Limite (em segundos) | Especifica o tempo que o fluxo de trabalho pode para ser executado antes de ser fechado e marcado como falha. | 200 |
Tempo limite da conexão de banco de dados (segundos) | O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado. | 15 |
Target | Microsoft.SQLServer.Linux.Database | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Linux.MonitorType.Database.LogShipping | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.LogShippingDestinationMonitor" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.LogShipping" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.LogShippingDestinationMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="DestOutOfSync" MonitorTypeStateID="Bad" HealthState="Error"/>
<OperationalState ID="DestInSync" MonitorTypeStateID="Good" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<LogShippingType>1</LogShippingType>
</Configuration>
</UnitMonitor>