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 do 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 do envio de logs. Quando essa condição ocorrer, o monitor passará para um estado de erro (vermelho). Depois que as restaurações de log forem retomadas e estiverem dentro dos limites definidos, o monitor retornará a um estado de êxito (verde). Por padrão, este monitor gerará alertas quando estiver em um estado de erro.
O envio de logs está fora de sincronização, além do limite de restauração. O limite de restauração é o número de minutos entre as operações de restauração antes de uma mensagem ser gerada.
Para solucionar este 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 apresentando falha. Nesse caso, verifique o histórico de trabalhos do trabalho de restauração para procurar a causa.
É possível que o trabalho de restauração de envio de logs, executado na instância do servidor secundário, não consiga 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. De modo ideal, esse valor é definido para pelo menos três vezes a frequência do trabalho de restauração. Se você alterar a frequência do trabalho de restauração depois que o envio de logs estiver configurado e funcionando, também deverá atualizar o valor do limite de alerta de backup.
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 surgir 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 acontece, 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 de monitor com os dados mais recentes no 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 de servidor não causarão problema.
Tópico sobre envio de logs nos Manuais Online do SQL Server 2005:
http://msdn.microsoft.com/en-us/library/ms190016(SQL.90).aspx
Target | Microsoft.SQLServer.2005.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.Windows.2SingleEventLog2StateMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2005.Database.LogShippingDestinationMonitor" Accessibility="Public" Enabled="true" Target="SQL2005Core!Microsoft.SQLServer.2005.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2005.Database.LogShippingDestinationMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="DestOutOfSync" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="DestInSync" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>Application</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">14421</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>.$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$ </Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>Application</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">18268</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>: $Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$,</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>