SQL Server 2012 DB Engine is restarted

Microsoft.SQLServer.2012.DBEngineServiceRestart (Rule)

Detects SQL Server 2012 DB Engine restart.

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 small time period, and turned back to “Running” state till that time is up. This time period is defined in "Unavailable Time" property and could be overridden. By default, this value is 900 secs (15 mins).

Overrideable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

No

Priority

Defines Alert Priority.

1

Severity

Defines Alert Severity.

1

Unavailable Time (seconds)

During this interval, try to catch the event service starting after the event service stop.

900

Element properties:

TargetMicrosoft.SQLServer.2012.DBEngine
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
SQL Server 2012 DB Engine is restarted
SQL Server 2012 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.2012.WindowsServiceRestartDetectionProvider Microsoft.SQLServer.SQLDefaultAccount
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2012.DBEngineServiceRestart" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="ServiceRestart" TypeID="Microsoft.SQLServer.2012.WindowsServiceRestartDetectionProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<ServiceName>SQL Server ($Target/Property[Type="SQL!Microsoft.SQLServer.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.2012.DBEngineServiceRestart.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>