Этот монитор определяет, что во временных границах, определенных как часть конфигурации доставки журналов, в месте доставки не был восстановлен журнал.
Этот монитор определяет, что во временных границах, определенных как часть конфигурации доставки журналов, в месте доставки не был восстановлен журнал. При этих условиях монитор переходит в состояние ошибки (красный индикатор). После восстановления журналов и возврата текущих параметров в определенные пороговые значения монитор возвращается в рабочее состояние (зеленый индикатор). По умолчанию этот монитор формирует предупреждения, если находится в состоянии ошибки.
Доставка журналов не синхронизирована дольше, чем задано порогом восстановления. Порог восстановления определяется как число минут, которое может пройти между операциями восстановления до того, как будет сформировано сообщение.
Чтобы устранить неполадку, выполните следующие действия.
Удостоверьтесь, что служба агента SQL Server на экземпляре сервера-получателя работает, и что задание восстановления в базе данных-получателе включено и выполняется по расписанию с подходящей частотой.
Возможно, произошла ошибка задания восстановления на сервере-получателе. В этом случае проверьте журнал заданий восстановления, чтобы попытаться найти ошибку.
Заданию восстановления доставки журналов, выполняющемуся на экземпляре сервера-получателя, не удается соединиться с экземпляром сервера мониторинга для обновления таблицы log_shipping_monitor_secondary. Причиной этого может быть проблема проверки подлинности между экземпляром сервера мониторинга и экземпляром сервера-получателя.
Неправильное пороговое значение предупреждения резервного копирования. В идеальном случае это значение должно быть минимум в три раза больше частоты запуска задания восстановления. Если частота запуска задания восстановления изменяется после настройки доставки журналов, когда она уже успешно работает, необходимо соответствующим образом обновить пороговое значение предупреждения резервного копирования.
Когда экземпляр сервера мониторинга переходит в режим "вне сети", а затем снова в режим "в сети", таблица log_shipping_monitor_secondary не обновляется текущими значениями до тех пор, пока не будет выполнено задание предупреждения. Ошибка 14421 может произойти после успешного завершения задания восстановления с сообщением "Не удалось найти файл резервной копии журнала, который можно использовать для базы данных-получателя". В этом случае время восстановления не обновляется. Причиной ошибки в этом случае может быть проблема, связанная с заданием копирования.
Для обновления таблиц мониторинга новейшими данными для базы данных-получателя выполните процедуру sp_refresh_log_shipping_monitor на экземпляре сервера-получателя.
На экземпляре сервера-получателя или сервера мониторинга установлена неправильная дата или время. При этом также могут формироваться предупреждения. Вероятно, была изменена системная дата или время на одном из этих серверов.
Примечание. Разные часовые пояса на двух экземплярах серверов не должны быть причиной проблемы.
Раздел о доставке журналов в электронной документации по SQL Server 2008:
Target | Microsoft.SQLServer.2008.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.2008.Database.LogShippingDestinationMonitor" Accessibility="Public" Enabled="true" Target="SQL2008Core!Microsoft.SQLServer.2008.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.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>