一臺老舊的資料庫伺服器(SQL Server 2005)突然報如下錯誤,而且資料庫處於RECOVERY PENDING ,檢查錯誤日誌,發現這個錯誤是突然出現的。沒有任何其它人為誤操作導致 Date 2019/4/15 10:57:47 Log SQL Server (Archive #1 - 20... ...
一臺老舊的資料庫伺服器(SQL Server 2005)突然報如下錯誤,而且資料庫處於RECOVERY PENDING ,檢查錯誤日誌,發現這個錯誤是突然出現的。沒有任何其它人為誤操作導致
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也沒有任何問題。
第一次遇到這種問題,雖然通過重啟解決了問題,但是感覺稀里糊塗,莫名其妙:不清楚問題產生的根源是什麼。為什麼重啟SQL Server服務就能解決問題呢?特此記錄一下這個問題。留待以後能解決!
參考資料:
https://serverfault.com/questions/104025/dbcc-checkdb-the-operating-system-returned-error-21the-device-is-not-ready