具有LOG_BACKUP log_reuse_wait_desc的SQL Server 2012简单恢复模型


11

虽然我在做我自己的调查,没有人知道为什么在数据库SIMPLE恢复模型LOG_BACKUPlog_reuse_wait_desc

SQL Server 2012 SP1。数据库是在几周前创建的。没有复制,没有镜像,没有日志传送,而且从未有过这些。

我们做了备份数据库,并恢复到另一个实例,它显示了SIMPLENOTHINGlog_reuse_wait对其他实例。但是我不认为还原到另一个实例是重现此问题的好方法,因为还原操作会前滚/回滚事务。

Answers:


11

好吧,昨天和一天晚上都花在调查,测试和尝试重现问题上。找到了根本原因:

MODEL数据库设置为SIMPLE恢复模型。

如果已将模型数据库设置为SIMPLE恢复模型,并且使用SIMPLE恢复模型创建了用户数据库,则SQL Server会以某种方式将其视为在FULL恢复模型中。因此,等待LOG_BACKUP截断日志。

我已在此链接中列出了步骤,以显示如何重现该问题。

我认为根本原因是,如果使用简单的恢复模型创建了用户数据库(此后不进行更改),那么它将出现此问题。我将其归咎于模型数据库,因为这是使用定义的恢复模型创建用户数据库的唯一方法。

此问题记录在Microsoft知识库文章2830400中,并已在SQL Server 2012 SP1 CU4和RTM CU7中修复:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.