Правило оповещения о невыполнении задания (заданий) обслуживания на распространителе
При репликации для выполнения планового и текущего обслуживания используются следующие задания.
Задание очистки | Описание | Расписание по умолчанию |
Очистка журнала агента: распространение | Удаляет журнал агента репликации из базы данных распространителя. | Запускается каждые десять минут. |
Очистка распространителя: распространение | Удаляет реплицированные транзакции из базы данных распространения. Деактивирует подписки, не синхронизированные в течение максимального срока хранения при распространении. | Запускается каждые десять минут. |
Очистка подписок с истекшим сроком действия | Обнаруживает и удаляет подписки с истекшим сроком действия из публикации. | Запускается каждый день в 01:00. |
При повторной инициализации подписок произошли сбои проверки данных | Обнаруживает все подписки, в которых возник сбой проверки данных, и помечает их для повторной инициализации. При следующем запуске агента слияния или агента распространения на подписчиках будет применен новый снимок. | Нет расписания по умолчанию (не включено по умолчанию). |
Проверка агентов репликации | Обнаруживает агенты репликации, для которых не ведется журнал. Создает запись в журнале событий Microsoft Windows в случае невозможности выполнения шага задания. | Запускается каждые десять минут. |
Обновитель мониторинга репликации для распространения | Обновляет кэшированные запросы, используемые монитором репликации. | Выполняет непрерывно. |
Задания обслуживания репликации могут быть не выполнены по многим причинам:
Проблемы конфигурации агента SQL Server
Проблемы заданий поддержки репликации, например неправильные значения параметров.
Ошибки целостности данных
Время ожидания запроса.
Для решения проблемы попробуйте сделать следующее:
Просмотрите журнал агента SQL Server для определения причины сбоя агента.
Найдите в журнале заданий обслуживания репликации любые сообщения об ошибке, упомянутые в предупреждении, проанализируйте и устраните их. Для просмотра журнала заданий воспользуйтесь этой статьей базы знаний.
Включите подробное ведение журнала и повторно запустите задание, чтобы получить детальные сведения об ошибках.
Имя | Описание | Значение по умолчанию |
Включено | Включает или отключает рабочий процесс. | Да |
Интервал (секунды) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 300 |
Приоритет | Определяет приоритет предупреждения. | 2 |
Серьезность | Определяет серьезность предупреждения. | 2 |
Время синхронизации | Время синхронизации |
|
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
Target | Microsoft.SQLServer.2014.Replication.Distributor | ||
Category | Alert | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | High | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.SQLServer.2014.Replication.DataSource.DistributorFailJobsMonitor | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
CDMaintenanceJobsCountNotNull | ConditionDetection | System.ExpressionFilter | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2014.Replication.DistributorFailedMaintenanceJobsAlertRule" ConfirmDelivery="true" DiscardLevel="100" Enabled="true" Priority="Normal" Remotable="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Distributor">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2014.Replication.DataSource.DistributorFailJobsMonitor" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<SqlTimeout>15</SqlTimeout>
<ConnectionString>$Target/Property[Type="MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor"]/ConnectionString$</ConnectionString>
<NumberOfConsecutiveFails>1</NumberOfConsecutiveFails>
<CategoryList/>
<ExcludeCategoryList>Distribution, LogReader, Merge, QueueReader, Snapshot</ExcludeCategoryList>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</DataSources>
<ConditionDetection ID="CDMaintenanceJobsCountNotNull" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='DistributorFailJobs']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.Replication.DistributorFailedMaintenanceJobsAlertRule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/Property[@Name="Message"]$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>