Nie mogę wymyślić, jak zmniejszyć rozmiar pliku ldf bazy danych.
DBA mówi, że powinienem użyć
backup log dbname with truncate_only
I chociaż wygląda na to, że został poprawnie wykonany w narzędziu SQL Query Analyzer, plik ldf wciąż ma ponad 2 Gb.
** Wyjaśnienie na podstawie niektórych komentarzy i niektórych odpowiedzi poniżej. *** Konkretna baza danych, o której mowa, to baza danych na moim laptopie i używam jej wyłącznie do procesów programistycznych. Plik dziennika rozwijał się do punktu, w którym wyglądało na spowodowanie pełnego dysku. Nie wiąże się to z ryzykiem produkcyjnym. Rozumiem, że metoda w pytaniu, które zadałem, i odpowiedź, którą zaakceptowałem, są ryzykowne w środowisku produkcyjnym. *
sql-server
log-files
shrink
Ron Tuffin
źródło
źródło
Odpowiedzi:
Och, horror! Proszę przestań mówić ludziom, że powinni zmniejszać swoje pliki dziennika!
Jeśli znalazłeś się w takiej sytuacji, bardzo prawdopodobne jest jedno z następujących przypadków:
Odpowiedź na każdy z nich jest następująca:
Jeśli (1), to przełącz bazę danych w tryb prosty
If (2), a następnie zaplanuj regularne kopie zapasowe dziennika
If (3), a następnie napraw zaplanowane kopie zapasowe dziennika
If (4), to po prostu nie rób tego :) Zamiast tego pracować w mniejszych partiach.
Zauważ, że ŻADNY z nich nie wymaga użycia (przestarzałego) „dbname dziennika kopii zapasowej z opcją truncate_only”
Zamiast tego, po wyczyszczeniu pliku dziennika przy użyciu jednej z powyższych technik, zmniejsz dziennik (teraz pusty) za pomocą:
Zawsze określaj rozsądny rozmiar końcowy, w przeciwnym razie zmniejszy się do prawie 0, a następnym razem będzie potrzebował czasu na rozwój.
źródło
po wykonaniu „tworzenia kopii zapasowej za pomocą truncate_only” należy wydać następujące polecenie, aby zmniejszyć
na przykład
źródło
Skrypt napisany powyżej oznaczy zawartość dziennika do ponownego użycia. Postępuj zgodnie ze skryptem za pomocą:
To zmniejszy to dla ciebie.
źródło