Pracuje nad projektem, który korzysta z bazy danych SQL postawionej na SQL Server 2000. Problem polega na tym ze plik logu bazy jest bardzo duży. Baza ma około 50MB, plik logu w ostatnim czasie zajmował około 7GB. Podejrzewam, że log trzyma dane dotyczące transakcji, które nie zostały pomyślnie zakończone. Wiem, że można samemu tworzyć transakcje i w momencie wystąpienia błędu zakończyć ją, ale podobno bardzo to obciąża serwer. Będe wdzięczny za jakieś wskazówki, włącznie z takimi jak pozamykać otwarte transakcje w pliku logu oraz inne które byłyby w stanie rozwiązać chociażby w części mój problem.
0
0
Jeśli recovery model dla bazy (properties->options w Enterprise Manager) masz ustawiony na full, proponowałbym następujące kroki - jeśli mnie pamięć nie myli, leci to tak:
- backup (dane i log transakcji) przed dalszymi krokami
- ustaw recovery model na simple
- zeszrinkuj bazę (w EM right click na bazie->all tasks->shrink database->files; tam zeszrinkuj log wybierając Shrink Action na Shrink to file, wpisz możliwą minimalną wartość)
- przywróc recovery model na full
docelowo warto zajrzeć do database maintenance plans
0
Albo po prostu:
- backup danych i logu
- backup log nazwa_bazy with truncate_only - obcina log transancji z niepotrzebnych wpisow (czyli wszystkie zakonczone transakcje)
0
dziękuje za propozycje, jak na razie uporaliśmy się importując dane do świeżej bazy.