这开始于我试图确定为什么我没有从SQL Server 2012 Standard Edition默认实例收到电子邮件。代理作业运行良好,但最后一次尝试在服务器上发送电子邮件并且成功的时间是2016年2月2日以及2016年3月8日的下一次尝试电子邮件(该邮件和所有后续电子邮件都有一个NULL sent_account_id和sent_status为0)。
我决定删除当前的电子邮件配置,并在默认实例上从头开始重新配置,这需要重新启动代理服务,以便它能够通过电子邮件发送通知。重新启动代理服务失败。 SQLAGENT.OUT显示:
2016-03-15 17:16:04 - ? [100] Microsoft SQLServerAgent version 11.0.6020.0 (X64 unicode retail build) : Process ID 5608
2016-03-15 17:16:04 - ? [495] The SQL Server Agent startup service account is OurDomain\DomainServiceAccount.
2016-03-15 17:16:04 - ? [393] Waiting for SQL Server to recover database 'msdb'...
2016-03-15 17:16:04 - ? [000] Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457) Configuration option 'Agent XPs' changed from 0 to 1. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457) Configuration option 'show advanced options' changed from 1 to 0. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457)
2016-03-15 17:16:04 - ? [101] SQL Server S-SW-DEVSQLAX version 11.00.6020 (0 connection limit)
2016-03-15 17:16:04 - ? [102] SQL Server ODBC driver version 11.00.6020
2016-03-15 17:16:04 - ? [103] NetLib being used by driver is DBNETLIB; Local host server is
2016-03-15 17:16:04 - ? [310] 4 processor(s) and 16384 MB RAM detected
2016-03-15 17:16:04 - ? [339] Local computer is S-SW-DEVSQLAX running Windows NT 6.1 (7601) Service Pack 1
2016-03-15 17:16:04 - ! [000] This installation of SQL Server Agent is disabled. The edition of SQL Server that installed this service does not support SQL Server Agent.
2016-03-15 17:16:04 - ? [000] Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457) Configuration option 'Agent XPs' changed from 1 to 0. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457) Configuration option 'show advanced options' changed from 1 to 0. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457)
2016-03-15 17:16:04 - ? [098] SQLServerAgent terminated (normally)
底部的第三行是最有趣的:"安装此服务的SQL Server版本不支持SQL Server代理。"据我所知,此服务器上从未有过Express Edition实例。此服务器上有两个Standard Edition实例,它们都有相同的电子邮件问题,并且执行" SELECT @@ VERSION"在任一实例中返回:
Microsoft SQL Server 2012(SP3)(KB3072779) - 11.0.6020.0(X64)10月 20 2015 15:36:27版权所有(c)Microsoft Corporation Standard Windows NT 6.1上的版本(64位)(Build 7601:Service Pack 1) (管理程序)
在2016年2月8日安装SP3后,该服务刚刚启动,因此必须在此之后更改某些内容才能导致代理出现问题。我找到了另一台服务器(同一项目的测试实例)并发现了同样的问题,该问题始于2015年7月27日到2015年9月5日之间,并且在该范围内(或之后)没有应用SQL Server更新。
虽然修复电子邮件问题是让我走这条路的原因,让代理再次运行的优先级更高(可能会修复电子邮件问题)。
什么可能导致代理混淆认为这是一个Express Edition实例,当它显然是标准版,并且代理服务在服务重启之前几分钟就已经运行了作业?
我没有在此服务器上的第二个实例上重新启动代理服务,该服务器一直成功运行作业(正如默认实例上的服务一样,直到尝试重新启动服务)。
[添加]尝试更改由本地服务帐户运行的代理服务导致"系统找不到指定的文件。 [0x80070002]"
我在SQL错误日志中找到了这个:
激活的proc' [dbo]。[sp_sysmail_activate]'在队列上运行 ' msdb.dbo.ExternalMailQueue'输出以下内容:'无法创建 DatabaseMail.exe进程。执行API' CreateProcess'失败了 错误编号2。'
答案 0 :(得分:0)
从SQL Server安装程序运行“修复”选项解决了代理服务无法在默认实例上启动以及数据库邮件排队但在两个实例上都不发送电子邮件的问题。
我想知道导致这个问题的原因,但这可能太过于希望了。