SQL Server 代理服务自动重新启动 SQL Server 时报告该错误。仅当除用户或应用程序显式停止命令之外的某种原因导致 SQL Server 停止,且在 SQL Server 代理高级属性中选中了“SQL Server 意外停止时自动重新启动”选项时,SQL Server 代理将自动重新启动 SQL Server。在 SQL Server 重新启动期间,SQL Server 代理将此消息写入到托管 SQL Server 的计算机上的应用程序事件日志中。
SQL Server 代理服务自动重新启动 SQL Server 时报告该错误。仅当除用户或应用程序显式停止命令之外的某种原因导致 SQL Server 停止,且在 SQL Server 代理高级属性中选中了“SQL Server 意外停止时自动重新启动”选项时,SQL Server 代理将自动重新启动 SQL Server。在 SQL Server 重新启动期间,SQL Server 代理将此消息写入到托管 SQL Server 的计算机上的应用程序事件日志中。
SQL Server 意外停止可能有几种不同的原因。这些原因包括:
SQL Server 内存空间内的进程内存泄漏,如扩展存储过程内存泄漏或 OLE 自动化内存泄漏。
从任务管理器上的“进程”选项卡,或用程序(如 Windows 资源工具包中的 kill.exe)直接结束 sqlservr.exe 进程。
某些类型的未处理的访问冲突。
如果不希望 SQL Server 代理自动重启 SQL Server,请关闭该选项。联机丛书中的“SQL Server 代理属性(“高级”选项卡)”描述了此操作的过程。
如果该问题重复发生,则你需要确定 SQL Server 服务意外停止的原因:
查看 SQL Server 错误日志和事件查看器日志中可能有助于解释服务意外停止原因的所有相关错误。
使用性能监视器监视系统的状态,并查找服务中止时间附近出现的问题。
名称 | 说明 | 默认值 |
已启用 | 启用或禁用工作流。 | 是 |
间隔(秒) | 运行工作流的重复间隔时间(秒)。 | 300 |
优先级 | 定义警报优先级。 | 1 |
严重性 | 定义警报严重性。 | 2 |
同步时间 | 同步时间 |
|
超时(秒) | 指定工作流在关闭之前允许运行的时间,并标记为失败。 | 200 |
数据库连接超时(秒) | 如果在指定期间无法访问数据库,工作流将失败并注册一个事件。 | 15 |
Target | Microsoft.SQLServer.Windows.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{D9D2C13A-3AAA-410C-B594-EC4ED1A7FC75}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.The_MSSQLServer_service_terminated_unexpectedly_3_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{D9D2C13A-3AAA-410C-B594-EC4ED1A7FC75}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>14265</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.The_MSSQLServer_service_terminated_unexpectedly_3_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>