Sql-Server

在哪裡尋找有關 SQL Server 為何無響應/崩潰的線索?

  • November 20, 2015

最近,當我在對話中間(SSMS 事務日誌備份)時,一個 SQLExpress 實例突然變得無響應/崩潰,它被沙漏凍結並且對話框無法使用。網路上沒有其他應用程序或使用者能夠訪問實例。我嘗試使用服務重新啟動,但沒有響應。最終,我完全重新啟動了伺服器,它又恢復了。當時使用的所有數據庫似乎在重新啟動後仍在工作並且沒有損壞。

尋找這次崩潰根源的最佳地點在哪裡?

我查看了事件查看器 > 應用程序,但崩潰時唯一的消息是(按順序):

  1. 崩潰前我收到的最後一個對話框
  2. (約 1 分鐘停頓)
  3. SSMS 的 Windows 錯誤報告和應用程序掛起(我在伺服器本地使用)
  4. 來自 ASP.NET 的後續警告說它無法連接
  5. 幾個“重新驗證連接上的登錄時訪問伺服器驗證失敗。” 錯誤
  6. 幾個“客戶端無法重用 SPID 68 的會話,該會話已被重置用於連接池。失敗 ID 為 23。此錯誤可能是由較早的操作失敗引起的。在此之前檢查錯誤日誌以了解失敗的操作錯誤資訊。”
  7. 使用者 ‘xxxxxxxx’ 登錄失敗。此時只有管理員可以連接。$$ CLIENT: 127.0.0.1 $$

消息 5/6/7 似乎是伺服器無響應導致的,而​​不是原因。

我使用 SSMS > Management > SQL Server Logs 查看了 SQL 錯誤日誌,但這只是從上面的 1 跳到 5。

還有什麼我可以分析的嗎?

此時只有管理員可以連接。

聽起來 UI 已發出ALTER DATABASE ... SET RESTRICTED_USER然後掛起。這實際上並沒有掛起 SQL Server,它只是阻止了非管理員使用者連接。你可以通過使用你的應用程序來解決這個問題sa——我在開玩笑

老實說,不要再使用 UI 進行日誌備份了——它在這樣的事情上並不是很擅長,而且很難選擇所有正確的選項來取得成功。BACKUP LOG ... TO DISK更加可靠、透明、無錯誤,甚至原始碼可控…

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