Sql-Server
帶有 LOG_BACKUP log_reuse_wait_desc 的 SQL Server 2012 簡單恢復模型
在我進行自己的調查時,有誰知道為什麼
SIMPLE
恢復模型中的數據庫LOG_BACKUP
適用於log_reuse_wait_desc
?SQL Server 2012 SP1。幾週前創建的數據庫。沒有複製,沒有鏡像,沒有日誌傳送,而且從來沒有這些。
我們確實備份了數據庫並恢復到另一個實例,它顯示
SIMPLE
在NOTHING
另一個log_reuse_wait
實例上。但我不認為還原到另一個實例是重現問題的好方法,因為還原操作會前滾/回滾事務。
好吧,昨天日夜都在調查、測試和嘗試重現問題。找到根本原因:
MODEL
數據庫設置為SIMPLE
恢復模式。如果模型數據庫已設置為
SIMPLE
恢復模型,並且使用者數據庫是使用SIMPLE
恢復模型創建的,則 SQL Server 會以某種方式將其視為處於FULL
恢復模型中。因此等待LOG_BACKUP
截斷日誌。我已在此連結中列出了步驟,以顯示我如何重現該問題。
我認為根本原因是如果使用簡單恢復模型創建了使用者數據庫(而不是之後更改),那麼它就有這個問題。我將其歸咎於模型數據庫,因為這是使用定義的恢復模型創建使用者數據庫的唯一方法。
這記錄在 Microsoft 知識庫文章 2830400 中,並在 SQL Server 2012 SP1 CU4 和 RTM CU7 中得到修復: