You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级ODBC Driver 13至17/18后SQL Server 2016 Agent无法启动

ODBC驱动升级后SQL Server Agent无法启动的解决办法

问题背景

卸载ODBC Driver 13(版本13.0.1501.5)并安装ODBC Driver 17或18后,SQL Server 2016 (SP2-CU17-GDR,版本13.0.5893.48 X64)的SQL Server Agent服务完全无法启动,SSMS中提示错误:SQL Server Agent 服务无法启动。有关详细信息,请查看 SQL Server 错误日志和 Windows 事件日志。 目标是让SQL Server使用新的ODBC驱动,同时恢复Agent服务正常运行。

核心原因

SQL Server 2016 Agent对ODBC Driver 13存在底层硬依赖,直接卸载该驱动会导致Agent缺失必要的运行组件(如msodbcsql13.dll),即使安装了更高版本的ODBC驱动,Agent的依赖配置未同步更新,从而引发启动失败。

解决步骤

1. 恢复ODBC Driver 13的核心依赖组件

无需重新完整安装ODBC Driver 13,只需提取并恢复关键文件:

  • 下载对应版本的ODBC Driver 13安装包(msodbcsql_13.0.1501.5_x64.msi),执行以下命令提取文件到临时目录:
    msiexec /a msodbcsql_13.0.1501.5_x64.msi /qb TARGETDIR=C:\temp\ODBC13Extract
    
  • 从提取的C:\temp\ODBC13Extract\Files\sqlncli13_x64路径下,复制msodbcsql13.dll和msodbcsqlr13.rll到C:\Windows\System32目录(64位系统)。

2. 配置SQL Server Agent使用新ODBC驱动

  • 修改作业连接配置:打开SSMS,展开SQL Server Agent → 作业,逐个检查作业步骤:
    • 对使用ODBC连接的步骤,将驱动明确指定为ODBC Driver 17 for SQL Server或ODBC Driver 18 for SQL Server。
  • 调整Agent注册表配置:打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\SQLServerAgent(根据你的实例名调整路径),添加或修改字符串值ODBCDriver,设置为ODBC Driver 17 for SQL Server。

3. 验证驱动优先级并重启服务

  • 执行PowerShell命令确认已安装的新驱动:
    Get-OdbcDriver | Where-Object {$_.Name -match "ODBC Driver 17|ODBC Driver 18"}
    
  • 设置默认64位ODBC驱动为目标版本:
    Set-OdbcDriver -Name "ODBC Driver 17 for SQL Server" -Platform 64-bit
    
  • 重启SQL Server Agent服务,检查是否正常启动。

4. 日志排查剩余问题

若Agent仍无法启动,查看以下日志定位具体错误:

  • SQL Server Agent日志:C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log\SQLAGENT.OUT
  • Windows事件查看器:展开Windows日志 → 应用程序,筛选来源为SQLSERVERAGENT的错误事件,根据提示修复对应问题。

内容的提问来源于stack exchange,提问作者user22969918

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:36:21