MSSQL 2014: SQL Server 2014 DB Engine is restarted

Microsoft.SQLServer.2014.DBEngineServiceRestart (Rule)

Detects SQL Server 2014 DB Engine restart. Note: This rule is disabled by default. Please use overrides to enable it when necessary.

Knowledge Base article:

Summary

This rule detects restart of SQL Server.

Configuration

This rule detects that SQL DB Engine service was in "Stopped" state during some short period and turned back to “Running” state after that. The allowed duration of unavailability is defined by "Unavailable Time" parameter and could be overridden. By default, this value is 900 seconds (15 minutes).

Overrideable Parameters

Name

Description

Default Value

Unavailable Time (seconds)

The workflow will try to catch a service start event during this time frame, after event service stops.

900

Enabled

 

No

Generates Alerts

 

Yes

Priority

 

1

Severity

 

1

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014: SQL Server 2014 DB Engine is restarted
SQL Server 2014 DB Engine for SQL Server instance "{0}" has been restarted on the machine "{1}".

Member Modules:

ID Module Type TypeId RunAs 
ServiceRestart DataSource Microsoft.SQLServer.2014.WindowsServiceRestartDetectionProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2014.DBEngineServiceRestart" Enabled="false" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="ServiceRestart" TypeID="Microsoft.SQLServer.2014.WindowsServiceRestartDetectionProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<ServiceName>SQL Server ($Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$)</ServiceName>
<CorrelatorInterval>900</CorrelatorInterval>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.DBEngineServiceRestart.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>