Состояние агента SQL Server для подписчика

Microsoft.SQLServer.Replication.Windows.Monitor.Subscriber.SQLServerAgentState (UnitMonitor)

Этот монитор проверяет, запущен ли агент SQL Server на подписчике. Обратите внимание, что служба Windows "Агент SQL Server" не поддерживается ни в одном из выпусков SQL Server Express. Поэтому этот монитор нельзя использовать с SQL Server Express.

Knowledge Base article:

Сводка

Этот монитор подключается к подписчику репликации и проверяет, работает ли служба агента SQL Server. Служба агента SQL Server автоматически устанавливается при установке SQL Server и отвечает за запуск агентов репликации. Обратите внимание, что служба Windows "Агент SQL Server" не поддерживается ни в одном из выпусков SQL Server Express. Поэтому этот монитор нельзя использовать с SQL Server Express.

Причины

Служба агента SQL Server могла быть остановлена вручную системным администратором Windows или в результате сбоя агента. Проверьте журнал событий приложений Windows на предмет причин непредвиденной остановки службы агента.

Если свойство режима запуска службы SQL Server задано как ручное, а не автоматическое, служба не будет автоматически перезапускаться после перезагрузки сервера.

Разрешения

Запустите службу агента SQL Server в службах Windows, диспетчере конфигурации SQL Server или в среде SQL Server Management Studio. Если выбран ручной режим запуска агента, попробуйте изменить его на автоматический.

Запуск, остановка и приостановка службы агента SQL Server

http://technet.microsoft.com/library/ms190695.aspx

Дополнительные

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

Внешний

Ссылка для просмотра журнала ошибок агента SQL Server: https://msdn.microsoft.com/library/ms175488.aspx

В этом разделе описано, как настроить автоматический перезапуск агента Microsoft SQL Server в случае, если он завершит работу непредвиденным образом, в SQL Server в Windows: https://msdn.microsoft.com/library/ms178130.aspx

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

Имя

Описание

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

Приоритет предупреждения

Определение приоритета оповещений.

Обычный

Серьезность предупреждения

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

Ошибка

Включено

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

Да

Создает предупреждения

Определяет, создается ли предупреждение рабочим процессом.

Да

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

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

600

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

Время синхронизации указывается в 24-часовом формате и может быть опущено.

 

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

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

300

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

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

15

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Subscriber
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.SqlServiceStatus
RemotableTrue
AccessibilityPublic
Alert Message
Репликация MSSQL на Windows: служба Windows "Агент SQL Server" остановлена в подписчике.
Служба Windows "Агент SQL Server" остановлена в экземпляре SQL Server {1} на компьютере {0}.
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.Subscriber.SQLServerAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Subscriber" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.SqlServiceStatus" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.Subscriber.SQLServerAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Running" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="RunningManualOrUnableToDetectStatus" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="NotRunning" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>