Sql-Server
DB STARTUP 命令對線上數據庫有效
我們在 SQL Server 上完成了維護活動,之後我們重新啟動了服務。現在數據庫花了他們的甜蜜時間來恢復,恢復後,我們開始了一些工作,認為一切都很好。現在,其中一個作業執行被一個 spid 阻止,該 spid 的命令為 DB STARTUP。可疑的是,我檢查了 SQL Server 日誌,那裡顯示一個數據庫仍在恢復。但是,在對象資源管理器中,我可以看到該數據庫線上,也可以查詢數據庫。我什至在那個數據庫中做了一些虛假的更新並截斷了一些表。那麼,這裡究竟發生了什麼復甦?數據庫在 AOAG 中,如果有幫助的話。
正如您所確認的,SQL 伺服器是企業版,並且數據庫在恢復後沒有啟動,因此恢復過程可以利用快速恢復。在企業版中,數據庫將在第二階段之後上線(這稱為快速恢復,從 SS 2005 開始引入),您會看到數據庫線上但仍在內部 第三階段,UNDO,階段正在進行並且可以完全訪問只有在第三階段完成後。我的意思完全是為了快速恢復,查詢可能會碰到一個被持有的鎖以允許快速恢復——在這種情況下,它必須等待該鎖隨著 UNDO 的進行而被刪除
我建議你也閱讀
似乎數據庫沒有完全恢復。請檢查 SQL 伺服器日誌。一旦數據庫完全恢復,鎖將自動釋放。