Этот монитор определяет, что во временных границах, определенных в конфигурации доставки журналов, журнал не был восстановлен в место назначения доставки журналов.
Обратите внимание, что доставка журналов не поддерживается ни в одном из выпусков SQL Server Express.
Этот монитор определяет, когда журнал не был восстановлен в месте назначения доставки журналов в пределах ограничений, указанных в конфигурации доставки журналов. Если обнаружено это условие, состояние монитора меняется на критическое. После того как восстановление журнала возобновится и будет находиться в пределах установленных значений, монитор вернется в исправное состояние. По умолчанию этот монитор создает предупреждения, когда он находится в состоянии ошибки.
Доставка журналов не синхронизировалась дольше, чем задано пороговым значением восстановления. Пороговое значение восстановления — это число минут, которое может пройти между операциями восстановления до того, как будет создано сообщение.
Устранение проблемы
Удостоверьтесь, что служба агента SQL Server на экземпляре сервера-получателя работает, и что задание восстановления в базе данных-получателе включено и выполняется по расписанию с подходящей частотой.
Возможно, произошел сбой задания восстановления на сервере-получателе. В этом случае проверьте журнал заданий восстановления, чтобы попытаться найти причину.
Заданию восстановления доставки журналов, выполняющемуся в экземпляре сервера-получателя, возможно, не удается подключиться к экземпляру сервера мониторинга для обновления таблицы log_shipping_monitor_secondary. Причиной этого может быть проблема проверки подлинности между экземпляром сервера мониторинга и экземпляром сервера-получателя.
Неправильное пороговое значение предупреждения резервного копирования. В идеальном случае это значение должно быть минимум в три раза больше частоты запуска задания восстановления. Если частота запуска задания восстановления изменяется после настройки доставки журналов, когда она уже успешно работает, необходимо соответствующим образом обновить пороговое значение предупреждения резервного копирования.
Когда экземпляр сервера мониторинга переходит в режим "вне сети", а затем снова в режим "в сети", таблица log_shipping_monitor_secondary не обновляется текущими значениями до тех пор, пока не будет выполнено задание предупреждения. Ошибка 14421 может произойти после успешного завершения задания восстановления с сообщением "Не удалось найти файл резервной копии журнала, который можно использовать для базы данных-получателя". В этом случае время восстановления не обновляется. Причиной ошибки в этом случае может быть проблема, связанная с заданием копирования.
Для обновления таблиц мониторинга новейшими данными для базы данных-получателя выполните процедуру sp_refresh_log_shipping_monitor в экземпляре сервера-получателя.
На экземпляре сервера-получателя или сервера мониторинга установлена неправильная дата или время. При этом также могут формироваться предупреждения. Вероятно, была изменена системная дата или время на одном из этих серверов.
Примечание. Разные часовые пояса двух экземпляров сервера не должны вызывать проблем.
Раздел о доставке журналов в электронной документации на SQL Server:
http://go.microsoft.com/fwlink/?LinkId=799310
Имя | Описание | Значение по умолчанию |
Приоритет предупреждения | Определение приоритета оповещений. | Обычный |
Серьезность предупреждения | Определяет серьезность предупреждения. | Ошибка |
Включено | Включает или отключает рабочий процесс. | Да |
Создает предупреждения | Определяет, создается ли предупреждение рабочим процессом. | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, в который следует запустить рабочий процесс. | 300 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Время ожидания (в секундах) | Указывает время, в течение которого может выполняться рабочий процесс, прежде чем он будет закрыт или завершится сбоем. | 200 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
Target | Microsoft.SQLServer.Windows.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.Windows.MonitorType.Database.LogShipping | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Windows.LogShippingDestinationMonitor" Accessibility="Public" Enabled="true" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.LogShipping" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.LogShippingDestinationMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</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>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<LogShippingType>1</LogShippingType>
</Configuration>
</UnitMonitor>