Sql-Server

帶有 LOG_BACKUP log_reuse_wait_desc 的 SQL Server 2012 簡單恢復模型

  • December 30, 2016

在我進行自己的調查時,有誰知道為什麼SIMPLE恢復模型中的數據庫LOG_BACKUP適用於log_reuse_wait_desc

SQL Server 2012 SP1。幾週前創建的數據庫。沒有複製,沒有鏡像,沒有日誌傳送,而且從來沒有這些。

我們確實備份了數據庫並恢復到另一個實例,它顯示SIMPLENOTHING另一個log_reuse_wait實例上。但我不認為還原到另一個實例是重現問題的好方法,因為還原操作會前滾/回滾事務。

好吧,昨天日夜都在調查、測試和嘗試重現問題。找到根本原因:

MODEL數據庫設置為SIMPLE恢復模式。

如果模型數據庫已設置為SIMPLE恢復模型,並且使用者數據庫是使用SIMPLE恢復模型創建的,則 SQL Server 會以某種方式將其視為處於FULL恢復模型中。因此等待LOG_BACKUP截斷日誌。

我已在此連結中列出了步驟,以顯示我如何重現該問題。

我認為根本原因是如果使用簡單恢復模型創建了使用者數據庫(而不是之後更改),那麼它就有這個問題。我將其歸咎於模型數據庫,因為這是使用定義的恢復模型創建使用者數據庫的唯一方法。

這記錄在 Microsoft 知識庫文章 2830400 中,並在 SQL Server 2012 SP1 CU4 和 RTM CU7 中得到修復:

引用自:https://dba.stackexchange.com/questions/42068