Sql-Server

大型數據庫上的 DatabaseIntegrityCheck 每天都失敗

  • March 22, 2022

在我的一個數據庫上,完整性檢查一直失敗並出現以下錯誤:

連接可能已被伺服器終止。

$$ SQLSTATE HY000 $$ 消息 596,Sev 21,狀態 1:無法繼續執行,因為會話處於終止狀態。$$ SQLSTATE HY000 $$.

我可以說沒有其他事情發生,所以這是一件特別難以解決的事情。就好像數據庫超時或 CheckDB 命令上的東西一樣。

我建議檢查數據庫數據文件的空間並擴展,以防只有 5% 的可用空間。

當時似乎有一些程序正在執行並啟動一個kill命令(可能來自DBA端,檢查長時間執行的程序或可能是由於阻塞),我建議你從Adam Machanic先生那裡下載著名的程序sp_whoisactive並安排在數據庫完整性檢查觸發並將輸出擷取到使用者表之前相同,多次執行相同的操作,以便您能夠在該時間間隔內獲得所有正在執行的會話。您可以參考這篇文章,了解如何將輸出擷取到表格中。

以上將幫助您找出罪魁禍首過程,您可以採取相應的行動。

有幾個問題與您類似,請參考:

如何檢查誰殺死了正在執行的作業?如果沒有生成日誌

https://stackoverflow.com/questions/40449982/cannot-continue-the-execution-because-the-session-is-in-the-kill-state-while-bu

如果以上有幫助,請告訴我們。

從我的答案中刪除了為什麼部分 checkdb 數據庫。

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