当服务器压力过大,或者推送发布较多时,SQL Server代理可能会异常停止,从而导致数据库的定时任务不能执行。
可以通过如下批处理来监控SQL Server 代理的运行情况,当异常停止时可以启动它。
批处理文件:net_start_SQLSERVERAGENT.bat
@echo off for /f "skip=3 tokens=4" %%i in ('sc query SQLSERVERAGENT') do set "zt=%%i" &goto :next :next if /i "%zt%"=="RUNNING" ( echo "SQL Server 代理 (MSSQLSERVER) 服务在运行。" ) else ( echo "SQL Server 代理 (MSSQLSERVER) 服务处理停止状态,准备启动……" net start SQLSERVERAGENT ping /n 3 127.1>nul ) #pause>nul
该批处理脚本如果检查到代理正在运行,则不做处理;如果检测到没有运行,则启动SQLserver代理,将批处理文件添加到Windows的 “任务计划” 定时执行即可。
发表评论