Mam bazę danych, która ma plik danych 350 MB (.mdf) i plik dziennika 4,9 GB (.ldf). Model odzyskiwania jest ustawiony na FULL
.
Kiedy próbuję zmniejszyć plik dziennika, nie zmniejsza się.
Wiem, że zmniejszanie bazy danych nie jest dobre i nie należy tego robić. Ale nadal próbuję to zrobić, aby zmniejszyć plik dziennika.
Kiedy pobiegłem
DBCC SQLPerf(logspace)
Odkryłem, że rozmiar dziennika wynosi 4932 MB, a używane miejsce dziennika to 98,76% !
Potem spróbowałem tego polecenia
USE <databasename>;
DBCC loginfo;
Teraz prawie wszystkie VLF mają „status 2”, co oznacza, że wszystkie są w użyciu.
Próbowałem zrobić kopię zapasową dziennika, a następnie zmniejszyć plik dziennika. Kurczenie się nie zmniejszyło rozmiaru.
Zmieniłem model odzyskiwania na SIMPLE
i próbowałem ponownie zmniejszyć, ale to też nie pomogło.
Sprawdziłem otwarte transakcje
DBCC opentran (database);
i stwierdził, że żadna transakcja nie jest teraz otwarta.
Co powstrzymuje mnie przed zmniejszaniem pliku dziennika? Jak mogę to rozwiązać?
log_reuse_wait_desc
dałACTIVE_TRANSACTION
. Gdy tylko transakcja się zakończyła, skurcz zadziałał dobrze.