KB4052127 - 修正: アラート エンジンは、完全なアプリケーション イベント ログを読み取り、Windows が再起動された後に古いイベントに対してアラートを送信します

適用先
SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

現象

システムを再起動すると、古いSQL Serverアラートの電子メール メッセージが多数届きます。 アラートは、アプリケーション イベント ログの最も古いメッセージに戻ります。

さらに、次のメッセージがログに記録されます。

SQLAgent.out ファイル内

  • <DateTime> - ! [LOG]ローカル イベント ログを読み取ることができません (理由: RPC サーバーが使用できません)
  • <DateTime> - ! [LOG]ローカル イベント ログを読み取ることができません (理由: ハンドルが無効です)
  • <DateTime> - + [LOG] ローカル イベント ログが正常に開き直されました - 注: 一部のイベントが見逃されている可能性があります

         Windows システム イベント ログ ファイル

  • <DateTime> Information server_name。 7036 Service Control Manager N/A N/A Windows イベント ログ サービスが停止状態に入った。
  • <DateTime> Information server_name。 7036 Service Control Manager N/A N/A Windows イベント ログ サービスが実行状態に入った。

原因

アプリケーション イベント ログは、グループ ポリシー オブジェクト (GPO) 設定またはローカル設定を使用して、最大ログ サイズが大きくように構成されました。 SQL Server エージェント ログを調べると、再起動直後にイベント ログのハンドルが失われることがわかります。 ハンドルが失われると、新しいイベント ログ ハンドルが取得された後、アラート エンジンはイベント ログ内の "場所を失う" と、アプリケーション イベント ログ内のすべてのエラー (アラートが定義されている) の電子メールを送信します。

解決策

この修正プログラムは、次の更新プログラムに含まれています。

SQL Serverの累積的な更新プログラムについて:

SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。

SQL Server 2017 の最新の累積的な更新プログラム

SQL Server 2014 の最新の累積的な更新プログラム

SQL Server 2016 の最小累積更新プログラム

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

Microsoft がソフトウェア更新プログラムの説明に使用する 用語 について説明します。