SQL Serverインスタンスの(SQL Server 2008 R2 Express)サービスには、スタートアップの種類=自動があります。コンピューターを再起動した過去数回、サービスはそれ自体では開始できませんでしたが、手動でサービスを開始すると、問題なく開始されます。
イベントビューアは、接続タイムアウトのためにサービスの開始に失敗したことを示しています。このタイムアウトに関する2つのエントリがあります。
エントリ1
SQL Server(SQLEXPRESS)サービスが接続するのを待っている間にタイムアウト(30000ミリ秒)に達しました。
エントリ2
次のエラーのため、SQL Server(SQLEXPRESS)サービスを開始できませんでした:サービスは、開始要求または制御要求に適時に応答しませんでした。
ERRORLOGファイルを確認しましたが、これらのイベントビューアエントリの前後に記録されたエラーはありません。
この問題の原因に関するアイデア、またはさらに調査するにはどうすればよいですか?
この問題は、SQL ServerがログオンIDの資格情報を失ったか、サービスを開始する権限のないアカウントを使用したことが原因で発生します。
サービスを自動的に開始するには、SQL Serverに、オペレーティングシステムの起動中にサービスを開始する権限を持つアカウントが必要です。
この問題を解決するには、管理ツール>サービス> SQLサーバー(MSSQLSERVERまたはインスタンスの名前)>右クリック>プロパティ>ログオンに移動>ローカルシステムアカウントを使用してログオンオプションを設定する必要があります
このオプションを選択した場合は、[参照]ボタンをクリックして、ローカルサービスアカウントまたはネットワークサービスアカウントを見つけ、[適用]をクリックします。
コンピュータを再起動すると、SQL Serverを起動できます。
ローカル管理者としてログオンしてみましたか?
Windows 10のSQL 2014 Expressでまったく同じ問題が発生しました。組み込みのローカル管理者ではない新しいユーザーを作成したかったので、新しいユーザーを作成し、それをAdministratorsグループに追加して、そのユーザーを設定しました起動時に自動ログオンします。 SQL Serverサービスは自動的に開始されません。遅延起動、ローカルサービス、ネットワークサービス、新しい管理者ユーザー、[常に待機する...]グループポリシー設定を試しました。何もうまくいきませんでした。
SQL Server 2014 Expressをアンインストールして再起動し、残っているすべてのファイル/フォルダーを手動で削除し、再起動して新しい管理者ユーザーで再インストールしました。まだ行きません。
ビルトインAdministratorアカウントなどの自動ログオンに切り替えました! SQL Serverサービスが自動的に開始されます。
これは明らかに私にとっては回避策なので、まだ調査中です。
**更新**
実際、私の問題は、以前に名前が変更されたマシンに起因しています。レジストリの「OriginalMachineName」の値を変更したら、問題は解決しました。
次のエラーのため、SQL Server(SQLEXPRESS)サービスを開始できませんでした:サービスは、開始要求または制御要求に適時に応答しませんでした。
単純なタイムアウトのように見えます。 Windowsは起動時に多くのサービスを開始しようとしています。これらのサービスはすべてリソースの競合を引き起こし、他のサービスの起動を遅くすることがあります。サービスには、サービスコントロールマネージャーに応答するための限られた時間しかありません。
これを簡単に修正するには、対象のサービスを自動(遅延開始)に設定します。その後、他のすべての自動サービスが開始されるまで、Windowsはそれを開始しません。
調べたいことをざっと見て、ドメインタイプの環境では、一部のオペレーティングシステムでは、完全なネットワーク接続が確立される前にサーバーにログオンできます。完全なネットワーク接続が確立されるまで、ログオンまたはOSの起動を許可しないように、ローカルまたはドメインレベルのグループポリシー設定を確認することができます。
再起動後にサーバーにログオンしたときにこれに気づいた場合に備えて、ドメインクレデンシャルの場合、ログインクレデンシャルで認証するためにドメインコントローラーに到達する(ネットワーク接続が完全に確立されていない)前に、キャッシュされたクレデンシャルを使用して実際にOSにログオンします。 SQLExpressサービスアカウントが実行されている。
それがあなたのケースに正確に当てはまるかどうかはわかりませんが、これは少なくとも簡単に調査して、少なくとも念のためにテストしようとするものです。
ワークステーションPCのホームディレクトリをマップするADホームディレクトリ(ログインスクリプトを介さない)で同様の問題が発生したときに、以前に保存したいくつかの記事でこれを見つけました。
[コンピュータの構成]-> [管理用テンプレート]-> [システム]->ログオンのポリシー値は、[常にコンピュータの起動とログオン時にネットワークを待つ]が[有効]に設定されます。
次のレジストリ値が存在しないか、その値が1に設定されていない場合、これは結果です。
レジストリハイブ:HKEY_LOCAL_MACHINEサブキー:\ Software\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon \値の名前:SyncForegroundPolicyタイプ:REG_DWORD値:1
私の場合(Windows Server 2019およびSQL Server 2019)、これはサービスとして実行する責任を負うユーザーがサービスとしてログオンする権利を持っていないためです。
から 修正:ログオンに失敗したため、サービスが開始されませんでした by Milan Stanojevic:
ユーザーアカウントのサービスとしてログオンする権利が取り消された場合は、状況に応じてドメインコントローラーまたはメンバーサーバー(スタンドアロン)に復元します。
ドメインコントローラでユーザーの権利を復元する方法
ユーザーがActive Directoryドメインにいる場合にこれを行う方法は次のとおりです。
- スタートを右クリック
- コントロールパネルをクリックします
- 管理ツールを入力して選択します
- [Active Directoryユーザーとコンピューター]をクリックします
- サービスとしてログオンするユーザー権利が付与されている組織単位を右クリックします(デフォルトではドメインコントローラー組織単位)
- 目的のコンテナを右クリックして、[プロパティ]をクリックします
- [グループポリシー]タブに移動します
- [既定のドメインコントローラーポリシー]をクリックします。
- [編集]をクリックして、グループポリシーマネージャーを起動します。
- コンピュータ構成を展開
- Windows設定を展開する
- [セキュリティ設定]を展開します。
- ローカルポリシーを展開する
- ユーザー権利の割り当てをクリックします
- 右側のペインから「サービスとしてログオン」を右クリックします
- [ユーザーまたはグループの追加]をクリックします。
- [ユーザー名とグループ名]ボックスに、ポリシーに追加する名前を入力します
- OKをクリックします。
- グループポリシーマネージャーを終了する
- グループポリシーのプロパティを閉じます。
- Active DirectoryユーザーとコンピュータMicrosoft管理コンソール(MMC)スナップインを終了します。
メンバーサーバー上でユーザーの権利を復元する方法(スタンドアロン)
ユーザーがスタンドアロンメンバーサーバーのメンバーである場合、これを行う方法は次のとおりです。
- ローカルセキュリティ設定を開始MMCスナップイン。
- ローカルポリシーを展開します。
- ユーザー権利の割り当てをクリックします。
- 右側のペインから「サービスとしてログオン」を右クリックします。
- [ユーザーまたはグループの追加]をクリックします。
- [ユーザー名とグループ名]ボックスに、ポリシーに追加する名前を入力します。
- OKをクリックします。
- ローカルセキュリティ設定を終了するMMCスナップイン。
ローカルサービスに行って変更しました
SQLサーバー(MSSQLSERVER SQLサーバーエージェント(MSSQLSERVER)
それらをAutomatic Delayedに設定し、ログオンタイプを
ローカルシステムアカウントティック(サービスにデスクトップとの対話を許可)
そしてそれは自動的に始まります