Questo monitoraggio controlla se SQL Server Agent è in esecuzione nel Sottoscrittore. Si noti che il servizio di Windows SQL Server Agent non è supportato da alcuna edizione di SQL Server Express. Questo monitoraggio non è quindi applicabile ai casi relativi a SQL Server Express.
Questo monitoraggio stabilisce una connessione al Sottoscrittore della replica e verifica se il servizio SQL Server Agent è in esecuzione. Il servizio SQL Server Agent viene installato automaticamente durante l'installazione di SQL Server ed è responsabile per l'avvio degli agenti di replica. Si noti che il servizio di Windows SQL Server Agent non è supportato da alcuna edizione di SQL Server Express. Questo monitoraggio non è quindi applicabile ai casi relativi a SQL Server Express.
Il servizio SQL Agent potrebbe essere stato arrestato manualmente dall'amministratore di sistema di Windows o in seguito a un errore dell'agente. Esaminare il registro eventi applicazioni di Windows per individuare le cause possibili dell'arresto imprevisto del servizio SQL Agent.
Se la modalità di avvio del servizio SQL Server Agent è impostata su "Manuale" anziché su "Automatica", il servizio non verrà riavviato automaticamente al riavvio del server.
Avviare il servizio SQL Server Agent in Servizi di Windows, Gestione configurazione SQL Server o tramite SQL Server Management Studio. Se la "Modalità di avvio" dell'agente è impostata su "Manuale", provare a impostarla su "Automatica".
Avviare, arrestare o sospendere il servizio SQL Server Agent
http://technet.microsoft.com/library/ms190695.aspx
Gli agenti di distribuzione in esecuzione nel sottoscrittore sono denominati agenti PULL e possono essere eseguiti in modo continuo o a intervalli pianificati. Se sono in esecuzione a intervalli pianificati, il servizio SQL Agent, in esecuzione in modo continuo, pianificherà l'avvio dell'agente di distribuzione. Se il servizio SQL Agent è arrestato, gli agenti pull di distribuzione non verranno avviati come pianificato, causando quindi una latenza dei dati.
Fare clic sul collegamento seguente per visualizzare il log degli errori di SQL Server Agent: https://msdn.microsoft.com/library/ms175488.aspx
Questo articolo descrive come configurare Microsoft SQL Server Agent per il riavvio automatico in caso di arresto imprevisto in SQL Server per Windows: https://msdn.microsoft.com/library/ms178130.aspx
Nome | Descrizione | Valore predefinito |
Priorità avviso | Definisce la priorità dell'avviso. | Normale |
Gravità avviso | Definisce la gravità dell'avviso. | Errore |
Abilitato | Abilita o disabilita il flusso di lavoro. | Sì |
Genera avvisi | Definisce se il flusso di lavoro genera un avviso. | Sì |
Intervallo (secondi) | Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro. | 600 |
Ora di sincronizzazione | Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa. |
|
Timeout (secondi) | Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito. | 300 |
Timeout per la connessione di database (secondi) | Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato. | 15 |
Target | Microsoft.SQLServer.Replication.Windows.Subscriber | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Replication.Windows.MonitorType.SqlServiceStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Core.RunAs.Monitoring |
<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>