SQL Server 2012 Prosty model odzyskiwania z LOG_BACKUP log_reuse_wait_desc

11

Czy podczas mojego dochodzenia ktoś wie, dlaczego baza danych w SIMPLEmodelu odzyskiwania ma LOG_BACKUPto log_reuse_wait_desc?

SQL Server 2012 z dodatkiem SP1. Baza danych utworzona zaledwie kilka tygodni temu. Bez replikacji, bez dublowania, bez wysyłania dziennika i nigdy nie miał żadnego z nich.

Zrobiliśmy kopii zapasowej i przywracania bazy danych do innej instancji, to widać SIMPLEi NOTHINGw log_reuse_waitdrugiej instancji. Ale nie sądzę, aby przywracanie do innej instancji było dobrym sposobem na odtworzenie problemu, ponieważ operacja przywracania przywraca / przywraca transakcje.

Travis
źródło

Odpowiedzi:

11

W porządku, spędziłem wczoraj dzień i noc na badaniu, testowaniu i próbach odtworzenia problemu. Znaleziono podstawową przyczynę:

MODELbaza danych ustawiona na SIMPLEmodel odzyskiwania.

Jeśli baza danych modelu została ustawiona na SIMPLEmodel odzyskiwania, a bazy danych użytkowników są tworzone za pomocą SIMPLEmodelu odzyskiwania, SQL Server traktuje go jak w FULLmodelu odzyskiwania. Dlatego czekam na LOG_BACKUPobcięcie dziennika.

W tym linku wymieniłem kroki, aby pokazać, w jaki sposób odtworzyłem problem.

Myślę, że główną przyczyną jest to, że jeśli baza danych użytkowników została utworzona (nie zmieniaj później) za pomocą prostego modelu odzyskiwania, to ma ten problem. Winię to za bazę danych modelu, ponieważ jest to jedyny sposób na utworzenie bazy danych użytkowników ze zdefiniowanym modelem odzyskiwania.

Udokumentowano to w artykule 2830400 bazy wiedzy Microsoft Knowledge Base i naprawiono w SQL Server 2012 SP1 CU4 i RTM CU7:

Travis
źródło