SQL Server Agent 服务为什么起不来?
SQL Server Agent 服务启动失败的常见原因:引擎未运行、配置未初始化、Express 版无此服务、账户与代理头问题。
简短答案
Agent 是挂在引擎之上的服务:引擎起不来它也起不来;另外 Agent 首次启动需要完成数据库内配置(Agent 数据库里的代理头、作业系统表),配置异常它会反复重启。还有一种特殊情况:Express 版不带 Agent 服务,属版本限制而非故障。
现象对照
| 现象 | 原因 | 处理 |
|---|---|---|
| 引擎正常、Agent 起不来且反复重启 | Agent 数据库初始化失败(SQLAgentDB 错误日志) | 看数据目录下 SQLAgentDB 日志 |
| 引擎没起,Agent 也停 | 依赖关系 | 先修引擎(见服务启动排查) |
| 系统里根本没有 Agent 服务 | 装的是 Express 版 | 换支持 Agent 的版本 |
| Agent 起了但作业全失败 | 代理头(代理账户)密码失效 | 改作业使用有效账户 |
排查步骤
- 确认引擎服务先起来:
Get-Service MSSQLSERVER状态为 Running。 - 查 Agent 专用日志:数据目录下
SQLAgentDB(或SQLAGENT.OUT类日志),第一行错误即根因。 - 若提示代理/作业表损坏:用 SSMS 连上引擎执行
sp_configure 'show advanced options', 1; RECONFIGURE;后核对 Agent 相关配置,再重启 Agent。 - 域账户代理头失效:SSMS 里 Agent → 代理 → 代理头,更新凭证。
- 用的是 SQL Server Express?该版本无 Agent 服务,定时任务(备份作业等)需改用 Windows 计划任务,或升级到 SQL Server 2022 Developer、SQL Server 2019 Developer 等带 Agent 的版本。
Agent 起不来不代表数据库数据有问题,优先怀疑配置与依赖,不要急于动数据文件。
操作小结
- 先保证引擎服务在跑。
- 读 Agent 专用日志定位配置错误。
- Express 无 Agent,是版本边界不是故障。