Sql-Server

無法連接到 <實例>。目前命令發生嚴重錯誤

  • September 18, 2018

最近,現在不止一次,我們嘗試使用 SSMS 從我們的一個 SQL Server 實例連接到另一個實例,但遇到以下錯誤:

目前命令發生嚴重錯誤。結果,如果有的話,應該丟棄。

在此處輸入圖像描述

當我們嘗試在本地使用 SSMS 進行連接時,會出現以下錯誤:

與伺服器成功建立連接,但在登錄過程中出現錯誤。(提供者:共享記憶體提供者,錯誤:0 - 管道的另一端沒有程序。)(Microsoft SQL Server,錯誤:233)

在此處輸入圖像描述

通過專用管理連接 (DAC) 的連接會導致相同的錯誤。SQLCMD 顯示以下錯誤:

在此處輸入圖像描述

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 使用者登錄失敗$$ domain $$$$ gMSA account for SQL Agent $$$’。原因:無法打開明確指定的數據庫’$$ database_name $$’.$$ CLIENT: [local machine $$] 2018-09-17 13:32:03.63 登錄錯誤:18456,嚴重性:14,狀態:38。

這些登錄問題是否可能超出最大連接數?如果是這樣,為什麼仍然無法通過 DAC 連接?

有人可以建議嗎?

更多細節:

  • Microsoft SQL Server 2016 (SP1-CU8) (KB4077064) - 13.0.4474.0 (X64) 2018 年 2 月 24 日 13:53:17 版權所有 (c) Windows Server 2016 Standard 10.0 (Build 14393) 上的 Microsoft Corporation Web Edition(64 位): )(管理程序)
  • SQL Server Management Studio v17.8.1
  • 最大使用者連接數設置為無限制 (0)。
  • 共享記憶體、TCP/IP 和命名管道都已啟用。

我們強烈懷疑此問題可能與問題之前的 SQL Server 錯誤日誌(請參閱上面的原始文章)中突出顯示的眾多連接錯誤有關。可能已超出最大連接數。

此後,我們重新啟動了數據庫伺服器並解決了連接問題。如果這被證明不是問題,將重新訪問這篇文章!

在對 SQL Server 服務應用任何更改時,建議通過SQL Server xxxx 配置管理器執行此操作,以確保正確設置任何相關權限(文件/目錄/數據庫/實例)和策略。


修復服務帳戶(權限和所有)

我們將重置文件、目錄和系統資料庫設置的所有權限,包括。按照這些快速步驟,根據服務帳戶的要求可能存在的任何策略。

將服務帳戶更改為本地帳戶

  1. 打開SQL Server 2016 配置管理器並導航到SQL Server 服務分支。
  2. 在配置管理器的右窗格中,右鍵點擊SQL Server服務並選擇屬性
  3. SQL Server 的屬性 (InstanceName)視窗中,檢查您是否位於登錄選項卡中。
  4. 將選擇器更改為內置帳戶並選擇以下三個選項之一:
  • 本地系統
  • 本地服務(首選;最低特權)
  • 網路服務
  1. Apply,當彈出對話框通知您“…您所做的任何更改在重新啟動之前不會生效”,點擊OK
  2. 停止SQL Server 服務 (InstanceName)
  3. 啟動SQL Server 服務 (IntanceName)
  4. 仔細檢查 SQL Server錯誤日誌是否有任何問題。
  5. **對SQL Server 代理 (InstanceName)**服務重複步驟 2 到 8 。

將服務帳戶更改回組託管服務帳戶

  1. 打開SQL Server 2016 配置管理器並導航到SQL Server 服務分支。
  2. 在配置管理器的右窗格中,右鍵點擊SQL Server服務並選擇屬性
  3. SQL Server 的屬性 (InstanceName)視窗中,檢查您是否位於登錄選項卡中。
  4. 將選擇器更改為此帳戶並輸入 SQL Server (InstanceName) 服務的 gMSA 的詳細資訊。
  5. Apply,當彈出一個對話框通知您“…您所做的任何更改在重新啟動之前不會生效”時,點擊OK
  6. 停止SQL Server 服務 (InstanceName)
  7. 啟動SQL Server 服務 (IntanceName)
  8. 仔細檢查 SQL Server錯誤日誌是否有任何問題。
  9. **對SQL Server 代理 (InstanceName)**服務重複步驟 2 到 8 。

現在應該已經根據各個服務的要求重新配置了服務。

引用自:https://dba.stackexchange.com/questions/217900