如何防止SQL Server 2014 Express实例闲置后自动停止?
首先明确:把启动类型改成Automatic(delayed start)解决不了你遇到的「闲置后SQL实例自动停止」问题——这个设置只是调整系统开机时服务启动的时机,避免和其他启动项争抢资源,和运行中服务自动终止完全无关,所以没必要改这个配置。
你的问题大概率是SQL Server Express版本的默认自动停止机制在起作用,这是微软为了节省资源给Express版本添加的特性,下面是具体排查和解决步骤:
检查SQL Server的自动停止配置
打开SQL Server配置管理器,找到你的SQL Server 2014 Express实例(通常命名为SQLEXPRESS),右键点击选择「属性」,切换到「服务」标签页,找到「服务停止延迟时间(分钟)」选项:- 如果这个值是默认的
30,说明系统会在实例闲置30分钟后自动停止服务; - 把它改成
0就能禁用这个自动停止机制,保存后重启服务生效。
- 如果这个值是默认的
查看系统事件日志找根源
打开Windows事件查看器,依次展开「Windows日志」->「系统」,搜索来源为MSSQL$SQLEXPRESS(你的实例名)的事件,找到服务停止对应的日志条目,里面会明确说明停止原因——如果不是自动停止,可能是资源不足、服务崩溃或者其他系统级问题,根据日志信息再针对性处理。检查Windows电源计划设置
因为你的服务器是闲置后出现问题,要确认Server 2012的电源计划没有触发低功耗模式:- 打开「控制面板」->「电源选项」;
- 确保当前使用的是「高性能」计划;
- 点击「更改计划设置」,确认「关闭硬盘」和「系统睡眠」都设置为「从不」。
确认服务依赖项状态
检查SQL Server服务的依赖服务(比如SQL Server Agent、SQL Server Browser等)有没有异常停止的情况,有时候依赖服务崩溃会导致主服务被连带终止。可以在服务管理器里查看这些依赖服务的状态和启动类型。
内容的提问来源于stack exchange,提问作者Alexander

