これは、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)
一番興味深いのは下から 3 行目です。「このサービスをインストールした SQL Server のエディションは、SQL Server エージェントをサポートしていません。」私の知る限り、このサーバーには Express Edition インスタンスはありませんでした。このサーバーには 2 つの Standard Edition インスタンスがあり、どちらも同じ電子メールの問題を抱えており、いずれかのインスタンスで「SELECT @@VERSION」を実行すると、次の結果が返されます。
Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 2015 年 10 月 20 日 15:36:27 Copyright (c) Microsoft Corporation Standard Edition (64 ビット) on Windows NT 6.1 (Build 7601: Service Pack 1) (ハイパーバイザー)
2016 年 2 月 8 日に SP3 がインストールされた後にサービスが新しく開始されたため、エージェントにいくつかの問題が発生するように、その後何かが変更されたに違いありません。別のサーバー (同じプロジェクトのテスト インスタンス) を見つけたところ、同じ問題が見つかりました。これは、2015 年 7 月 27 日から 2015 年 9 月 5 日の間に始まり、その期間 (またはそれ以降) に SQL Server の更新は適用されませんでした。
メールの問題を修正することが私をこの道に追いやったのですが、エージェントを再び実行することがより優先されます (そして、メールの問題を修正する可能性があります)。
明らかに Standard Edition であり、Agent サービスがサービスの再起動の数分前にジョブを実行していた場合に、Agent がこれを Express Edition インスタンスであると混乱させる原因は何ですか?
このサーバーの 2 番目のインスタンスでエージェント サービスを再起動していません。このインスタンスは常に正常にジョブを実行していました (サービスの再起動が試行されるまで、デフォルト インスタンスのサービスと同様でした)。
[追記] Agent サービスを Local Service アカウントで実行するように変更しようとすると、「指定されたファイルが見つかりません。[0x80070002]」という結果になりました。
SQLエラーログでこれを見つけました:
キュー 'msdb.dbo.ExternalMailQueue' で実行されているアクティブ化された proc '[dbo].[sp_sysmail_activate]' は、次の出力を出力しました: 'DatabaseMail.exe プロセスを作成できませんでした。API 'CreateProcess' の実行がエラー番号 2 で失敗しました。