SQL Serverのサービスが、Windowsの再起動のタイミングで止まってしまう現象について紹介します。
今まで利用できていたSQL Serverに接続できなくなります。
早朝に気づくことが多いため、SQL Serverのマシンのリブートで発生する可能性が高そうです。
SQL Server Configuration Manager を起動し、サービスの稼働状態を確認すると、SQL SeverとSQL Server エージェント が停止していることがわかります。
SQL Serverのサービスを開始すると利用できる状態になります。SQL Server Configuration Manager でSQL Serverのサービスをクリックして選択し、右クリックします。
下図のポップアップメニューが表示されますので[開始]の項目をクリックします。
SQL Server と SQL Server エージェントのサービスを起動します。
イベントビューアーでSQL Serverのログを調査します。[システム]のログに、次のログが記録されています。
起動に時間がかかりすぎてタイムアウトしているように見られます。
マシンの再起動時に高負荷状態が長く続くことで、上記のエラーが発生するため、マシンのスペックアップを検討します。
後述の方法でも対処できますが、根本的にはマシンを更新するのが良いのではないかと考えられます。
サービスを遅延起動することで、高負荷状態のときにサービスを起動しないように設定できます。
[コンピューターの管理]を起動し、左側の[サービスとアプリケーション]ノード内の[サービス]ノードをクリックして選択します。
下図の画面が表示されます。
右側のエリアから "SQL Server" のサービスの項目を探しクリックして選択します。選択状態で右クリックしポップアップメニューを表示します。
メニューの[プロパティ]の項目をクリックします。
プロパティダイアログが表示されます。
[スタートアップの種類]の項目のコンボボックスをクリックして開きます。ドロップダウンリストが表示されますので、
[自動 (遅延開始)]の項目をクリックして選択します。
[スタートアップの種類]を"自動 (遅延開始)"に設定できました。ダイアログの[OK]ボタンをクリックしてダイアログを閉じます。
[SQL Server]のサービスのスタートアップの種類が "自動 (遅延開始)"に変更できました。
同じ手順で、[SQL Server エージェント]のサービスも "自動 (遅延開始)" にスタートアップの種類を変更します。
マシンをリブートして、SQL Serverが問題なく起動することを確認します。
また、しばらく継続して利用し、SQL Serverが起動しない状態にならないことを確認します。