web-dev-qa-db-ja.com

<インスタンス>に接続できません。現在のコマンドで重大なエラーが発生しました

最近、また複数の機会で、SSMSを使用してSQL Serverインスタンスの1つから別のインスタンスに接続しようとしたところ、次のエラーが発生しました。

現在のコマンドで重大なエラーが発生しました。結果があれば、破棄する必要があります。

enter image description here

SSMSを使用してローカルに接続しようとすると、次のエラーが発生します。

サーバーとの接続は正常に確立されましたが、ログインプロセス中にエラーが発生しました。 (プロバイダー:共有メモリプロバイダー、エラー:0-パイプの反対側にプロセスがありません。)(Microsoft SQL Server、エラー:233)

enter image description here

専用管理接続(DAC)経由の接続でも同じエラーが発生します。 SQLCMDは次のエラーを明らかにします。

enter image description here

SQL Server構成マネージャーは、SQL ServerサービスとSQL Serverエージェントサービスの両方が実行されていることを報告します。

SQL Serverエラーログは、イベントビューアのエントリがログに記録されると同時に停止し、SQL Serverエージェントジョブの接続の問題を報告します。

SQL Serverのスケジュールされたジョブ 'sp_WhoIsActive'(0x868EBDEC06F71344AC717E0C6A333D13)-ステータス:失敗-起動日:2018-09-18 10:38:00-メッセージ:ジョブが失敗しました。ジョブsp_WhoIsActiveの所有者(sa)がサーバーにアクセスできるかどうかを判別できません(理由:サーバーに接続できません-SQL ServerおよびSQL Serverエージェントのエラーログを確認してください)。

すべてのSQL Serverサービスは、グループ管理サービスアカウント(gMSA)で実行するように構成されています。

これまでの唯一の解決策はサーバーを再起動することでしたが、特に問題が複数回発生したため、これは明らかに満足できる解決策ではありません。

続行する必要があるのは、接続の問題が発生する前に、SQL Serverのエラーログに次のエラーメッセージが多数発生することだけです。

2018-09-17 13:31:19.20ユーザー '[ドメイン] [SQL ServerのgMSAアカウント] $'のログオンログインに失敗しました。理由:明示的に指定されたデータベース '[database_name]'を開くことができませんでした。 [クライアント:[ローカルマシン]] 2018-09-17 13:32:03.63ログオンエラー:18456、重大度:14、状態:38。

これらのログインの問題の結果、接続の最大数を超えた可能性はありますか?もしそうなら、なぜそれでもDAC経由で接続できないのですか?

誰かアドバイスしていただけますか?

詳細:

  • Microsoft SQL Server 2016(SP1-CU8)(KB4077064)-13.0.4474.0(X64)Feb 24 2018 13:53:17 Copyright(c)Microsoft Corporation Web Edition(64-bit)on Windows Server 2016 Standard 10.0(Build 14393: )(ハイパーバイザー)
  • SQL Server Management Studio v17.8.1
  • ユーザー接続の最大数は無制限(0)に設定されています。
  • 共有メモリ、TCP/IP、および名前付きパイプはすべて有効になっています。
2
James D

この問題は、SQL Serverエラーログ(上記の元の投稿を参照)で強調表示されていた多数の接続エラーに関連している可能性があると強く考えています。接続の最大数を超えた可能性があります。

その後、データベースサーバーを再起動し、接続の問題を解決しました。これが問題ではないことが判明した場合は、この投稿に再度アクセスします!

0
James D

SQL Serverサービスに変更を適用する場合、関連する権限(ファイル/ディレクトリ/データベース/インスタンス)とポリシーが正しく設定されていることを保証するために、SQL Server xxxx構成マネージャーで変更することをお勧めします。


サービスアカウントの修正(権限とすべて)

ファイル、ディレクトリ、レジストリ設定を含むすべての権限をリセットします。これらの簡単な手順に従って、サービスアカウントの要件に従って存在する可能性のあるポリシー。

サービスアカウントをローカルアカウントに変更する

  1. SQL Server 2016 Configuration Managerを開き、SQL Server Servicesブランチに移動します。

  2. 構成マネージャーの右側のペインで、SQL Serverサービスを右クリックし、Propertiesを選択します。

  3. SQL Server(InstanceName)のプロパティウィンドウで、ログオンタブにいることを確認します。

  4. セレクターをビルトインアカウントに変更し、3つのオプションのいずれかを選択します。

    • ローカルシステム
    • ローカルサービス(推奨、最低特権)
    • ネットワークサービス
  5. Applyを押して、ダイアログがポップアップ表示されたら、「...行った変更は再起動するまで有効になりません」をクリックします[〜#〜] ok [〜# 〜]

  6. 停止SQL Serverサービス(InstanceName)

  7. 開始SQL Serverサービス(IntanceName)

  8. SQL Serverを再確認してください[〜#〜] errorlog [〜#〜]問題がないか確認してください。

  9. SQL Server Agent(InstanceName)サービスに対して、手順2〜8を繰り返します。

サービスアカウントをグループ管理サービスアカウントに戻す

  1. SQL Server 2016 Configuration Managerを開き、SQL Server Servicesブランチに移動します。

  2. 構成マネージャーの右側のペインで、SQL Serverサービスを右クリックし、Propertiesを選択します。

  3. SQL Server(InstanceName)のプロパティウィンドウで、ログオンタブにいることを確認します。

  4. セレクターをこのアカウントに変更し、SQL Server(InstanceName)サービスのgMSAの詳細を入力します。

  5. 適用を押して、ダイアログがポップアップ表示され、「...加えた変更は再起動するまで有効になりません」と通知します[〜#〜] ok [〜# 〜]

  6. 停止SQL Serverサービス(InstanceName)

  7. 開始SQL Serverサービス(IntanceName)

  8. SQL Serverを再確認してください[〜#〜] errorlog [〜#〜]問題がないか確認してください。

  9. SQL Server Agent(InstanceName)サービスに対して、手順2〜8を繰り返します。


サービスは、個々のサービスの要件に従って再構成されているはずです。

1