摘要:SQL - 等候緩衝閂時發生逾時...
此篇文章沒有甚麼很深入精彩的技術,只是記錄著難忘又刺激的夜晚,怎說呢!? 昨晚接到了電話,說系統出了狀況,資料沒辦法寫到另一台的 MS SQL。檢查了許久,重做了 N 遍,從網路問題一路排除(DNS 解析也有問題),仍舊是無法將來源資料寫到目的資料 MS SQL 中。之後,看了目的端的事件檢視器後,發現了以下的訊息:
當下很難去理解「等候緩衝閂時發生逾時」這種文法,之後帶著「來源」與「事件 ID」去 MSDN 找到了「MSSQLSERVER_844」這篇文章,主要內容是在解釋當發生這個問題時,將會是甚麼樣的情況造成的
MSDN:
說明:「處理序正在等候取得閂鎖。造成這個問題的原因可能是由於 I/O 作業花費太多時間才完成。這種錯誤通常是其他工作封鎖了系統處理序所造成的結果。在某些情況下,這項錯誤可能是硬體故障的結果。」
看到後恍然大悟,因為第一次在做的時候,因為 DNS 解析的問題造成斷線,造成系統不正常關閉,讓 MS SQL 的作業無法結束,並且 I/O 不斷的使用。之後再試幾次作業都無法獲得驗證及寫入,這時能想到的辦法就是「重新啟動 MS SQL 的服務」。當然服務重啟後,作業又可以正常的繼續。我只能說當晚,真的是又刺激又驚險...
參考:
MSSQLSERVER_844