Einfaches Wiederherstellungsmodell für SQL Server 2012 mit LOG_BACKUP log_reuse_wait_desc

11

Weiß jemand, während ich meine eigenen Nachforschungen anstelle, warum eine Datenbank im SIMPLEWiederherstellungsmodell LOG_BACKUPfür das log_reuse_wait_desc?

SQL Server 2012 SP1. Datenbank erst vor wenigen Wochen erstellt. Keine Replikation, keine Spiegelung, kein Protokollversand und noch nie eine davon.

Wir haben Backup der Datenbank und Wiederherstellung auf eine andere Instanz, es zeigt , SIMPLEund NOTHINGin log_reuse_waitauf der anderen Instanz. Ich denke jedoch nicht, dass die Wiederherstellung auf einer anderen Instanz ein guter Weg ist, um das Problem zu reproduzieren, da der Wiederherstellungsvorgang Transaktionen vorwärts / rückwärts rollt.

Travis
quelle

Antworten:

11

Okay, ich habe gestern Tag und Nacht damit verbracht, das Problem zu untersuchen, zu testen und zu reproduzieren. Die Grundursache gefunden:

MODELDatenbank auf das SIMPLEWiederherstellungsmodell eingestellt.

Wenn die Modelldatenbank auf das SIMPLEWiederherstellungsmodell festgelegt wurde und Benutzerdatenbanken mit dem SIMPLEWiederherstellungsmodell erstellt wurden, behandelt SQL Server sie irgendwie so, als ob sie sich im FULLWiederherstellungsmodell befindet. Warten Sie daher darauf LOG_BACKUP, das Protokoll abzuschneiden.

Ich habe die Schritte in diesem Link aufgelistet, um zu zeigen, wie ich das Problem reproduziert habe.

Ich denke, die Hauptursache ist, wenn eine Benutzerdatenbank mit einem einfachen Wiederherstellungsmodell erstellt wurde (nicht danach geändert wird), dann hat sie dieses Problem. Ich beschuldige die Modelldatenbank, da dies die einzige Möglichkeit ist, eine Benutzerdatenbank mit dem definierten Wiederherstellungsmodell zu erstellen.

Dies ist im Microsoft Knowledge Base-Artikel 2830400 dokumentiert und in SQL Server 2012 SP1 CU4 und RTM CU7 behoben:

Travis
quelle