2012-02-10 12 views
14

Na moim lokalnym dysku C: Mam plik ldf dla bazy danych hostowanej na jednym z naszych serwerów. Mam lokalną kopię jednej z baz danych, która jest 1 gb i ldf (plik dziennika) tej bazy danych, która ma 16 gb. Zajmuje dużo mojej lokalnej przestrzeni na moim twardym dysku. Chciałbym skrócić ten plik. Wiele z tego, co czytam w Internecie, nie jest, ale wygląda na to, że mówią o plikach na serwerze, na którym jest baza danych. Tak nie jest w tym przypadku, jest na mojej lokalnej maszynie.Skoroszytowy plik dziennika transakcji SQL Server

Położenie pliku na moim komputerze jest:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA 

Dlaczego mam kopię tego pliku dziennika lokalnie, a także, że baza danych lokalnie?

Jak zabrałbym się do obcinania tego pliku?

Dzięki!

Odpowiedz

27

Przejdź do panelu Eksplorator obiektów w systemie SSMS i kliknij prawym przyciskiem myszy na odpowiednią bazę danych. Wybierz zadania -> zmniejsz -> pliki. Zmień opcję typu pliku na Log, kliknij opcję "Reorganizuj strony przed zwolnieniem wolnego miejsca" i ustaw wartość 1 MB. Hit OK.

Jeśli to nie zadziała, sprawdź, czy baza danych jest skonfigurowana z pełnym modelem odzyskiwania bazy danych. Kliknij prawym przyciskiem myszy bazę danych i przejdź do właściwości. Wybierz Opcje i zaznacz opcję Odzyskaj model. Ustaw na prosty (jeśli możesz!), A następnie zmniejsz dzienniki.

+0

To powoduje zmniejszenie plików na rzeczywistym serwerze, na którym znajduje się baza danych, a nie na dysku lokalnym. – Loganj99

+1

Pozwól mi upewnić się, że rozumiem to. Masz lokalną kopię bazy danych znajdującej się w innym miejscu. Czy Twoja lokalna kopia jest dołączona do lokalnej instancji serwera SQL? –

+0

Z mojego zrozumienia. Jestem nowy na serwerze sql, więc nie jestem pewien, dlaczego tak naprawdę jest. Jest pod katalogiem, który wymieniłem w moim oryginalnym wpisie, na moim lokalnym komputerze. Jest również na serwerze. nie jestem pewien, czy są one takie same lub co to jest umowa. – Loganj99

1

innej opcji można spróbować jest do użytku z TRUNCATE_ONLY:

BACKUP LOG databasename WITH TRUNCATE_ONLY 
DBCC SHRINKFILE ( adventureworks_Log, 1) 

ale nie próbuj tej opcji na żywo środowiska, znacznie lepszym rozwiązaniem jest stworzenie bazy danych w prosty odzysku. zobacz poniższą komendę, aby to zrobić:

ALTER DATABASE mydatabase SET RECOVERY SIMPLE 
DBCC SHRINKFILE (adventureworks_Log, 1) 
Powiązane problemy