一臺老舊的數據庫服務器(SQL Server 2005)忽然報以下錯誤,並且數據庫處於RECOVERY PENDING ,檢查錯誤日誌,發現這個錯誤是忽然出現的。沒有任何其它人爲誤操做致使sql
Date 2019/4/15 10:57:47
Log SQL Server (Archive #1 - 2019/4/15 11:16:00)
Source spid2s
Message
LogWriter: Operating system error 21(error not found) encountered.
期間收到大量做業的告警,做業運行失敗報「Unable to connect to SQL Server '(local)'. The step failed.」,繼續檢查錯誤日誌,就能看到都是對應數據庫的事務日誌報這個錯誤:數據庫
關於「Operating system error 21」這個錯誤,一度覺得是硬件錯誤引發的,可是系統管理員反饋底層硬件正常,也未作任何操做。檢查系統日誌,只發現有一些驅動報錯的信息,系統管理員確認這個不會影響磁盤。服務器
因而我就重啓了一下SQL Server 服務,這個錯誤就消失了,問題就解決了。網上也有很多關於這個Operating system error 21」這個錯誤(請見參考資料),都是經過重啓SQL Server服務或將數據庫offline,而後online解決問題。重啓事後,對數據庫作了一下DBCC CHECKDB也沒有任何問題。app
第一次遇到這種問題,雖然經過重啓解決了問題,可是感受稀裏糊塗,莫名其妙:不清楚問題產生的根源是什麼。爲何重啓SQL Server服務就能解決問題呢?特此記錄一下這個問題。留待之後能解決!spa
參考資料:日誌
https://serverfault.com/questions/104025/dbcc-checkdb-the-operating-system-returned-error-21the-device-is-not-readycode