巡檢發現一個SQL SERVER Express 2005數據庫備份時出現下面錯誤:
Database 'xxxx' is being recovered. Waiting until recovery is finished.
出現這個錯誤有點讓人納悶,有很多情況可能出現這個錯誤,例如,系統出現異常重啟,或數據庫服務被人為突然重啟,數據庫服務啟動后,數據庫正在恢復中,此時備份就會出現這種錯誤提示,但是檢查錯誤日志發現沒有任何異常錯誤信息,檢查數據庫還原記錄,也沒有發現該數據庫在備份時間段有還原的記錄,最終發現是該數據庫的一個“自動關閉”屬性設置為了True
關於數據庫的“自動關閉”屬性,以前也碰到過一個關於這個屬性引起的錯誤案例 Error: 9001, Severity: 21, State: 5 The log for database 'xxxx' is not available 。看來這個“自動關閉”屬性設置為Ture還真是麻煩多多。
后面查了一下MSDN文檔,發現SQL Server 2000或SQL Server Express版本的數據庫的AUTO_CLOSE選項默為Ture,而這個數據庫恰好為SQL Server Express 2005.
選項 |
說明 |
默認值 |
AUTO_CLOSE |
當設置為 ON 時,數據庫將在最后一個用戶退出后完全關閉,它占用的資源也將釋放。當用戶嘗試再次使用該數據庫時,該數據庫將自動重新打開。 當設置為 OFF 時,最后一個用戶退出后數據庫仍保持打開。 |
無論使用什么操作系統,當使用 SQL Server 2000 Desktop Engine 或 SQL Server Express 時,對於所有數據庫均為 True,而使用所有其他版本時,對於所有數據庫均為False |
參考資料: