SQL Server - duży plik logu

0

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

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1