Репликация MSSQL 2014: правило оповещения о невыполнении задания (заданий) обслуживания на распространителе

Microsoft.SQLServer.2014.Replication.DistributorFailedMaintenanceJobsAlertRule (Rule)

Правило оповещения о невыполнении задания (заданий) обслуживания на распространителе

Knowledge Base article:

Сводка

При репликации для выполнения планового и текущего обслуживания используются следующие задания.

Задание очистки

Описание

Расписание по умолчанию

Очистка журнала агента: распространение

Удаляет журнал агента репликации из базы данных распространителя.

Запускается каждые десять минут.

Очистка распространителя: распространение

Удаляет реплицированные транзакции из базы данных распространения. Деактивирует подписки, не синхронизированные в течение максимального срока хранения при распространении.

Запускается каждые десять минут.

Очистка подписок с истекшим сроком действия

Обнаруживает и удаляет подписки с истекшим сроком действия из публикации.

Запускается каждый день в 01:00.

При повторной инициализации подписок произошли сбои проверки данных

Обнаруживает все подписки, в которых возник сбой проверки данных, и помечает их для повторной инициализации. При следующем запуске агента слияния или агента распространения на подписчиках будет применен новый снимок.

Нет расписания по умолчанию (не включено по умолчанию).

Проверка агентов репликации

Обнаруживает агенты репликации, для которых не ведется журнал. Создает запись в журнале событий Microsoft Windows в случае невозможности выполнения шага задания.

Запускается каждые десять минут.

Обновитель мониторинга репликации для распространения

Обновляет кэшированные запросы, используемые монитором репликации.

Выполняет непрерывно.

Причины

Задания обслуживания репликации могут быть не выполнены по многим причинам:

Решения неисправностей

Для решения проблемы попробуйте сделать следующее:

Переопределяемые параметры

Имя

Описание

Значение по умолчанию

Включено

Включает или отключает рабочий процесс.

Да

Интервал (секунды)

Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс.

300

Приоритет

Определяет приоритет предупреждения.

2

Серьезность

Определяет серьезность предупреждения.

2

Время синхронизации

Время синхронизации

 

Время ожидания (секунды)

Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный.

300

Время ожидания для подключения к базе данных (секунды)

Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени.

15

Element properties:

TargetMicrosoft.SQLServer.2014.Replication.Distributor
CategoryAlert
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
Репликация MSSQL 2014: не удалось выполнить некоторые задания обслуживания репликации на распространителе.
{0}

Member Modules:

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

Source Code:

<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>