Czy wykonywanie kopii zapasowych dziennika transakcji co 15 minut zajmuje więcej miejsca na dysku niż tworzenie kopii zapasowych dziennika co 6 godzin?

10

W naszym środowisku w pamięci sieci jest mało miejsca. Jednocześnie chciałbym się upewnić, że kopie zapasowe dziennika transakcji wykonujemy co 15 minut zamiast bieżących co 6 godzin. Moje pytanie brzmi: czy zmiana przedziału kopii zapasowej dziennika z 6 godzin na każde 15 minut zajmie więcej miejsca na dysku?

SqlNovice
źródło
@eckes, co to ma wspólnego z częstotliwością tworzenia kopii zapasowych? Jeśli potrzebujesz miejsca na 3 dni tworzenia kopii zapasowych dziennika, jaka to różnica, jeśli kopie zapasowe są wykonywane co 6 godzin lub 15 minut?
Brent Ozar
Bądź ostrożny, bez względu na to, jak często tworzysz kopie zapasowe, powinieneś zaplanować wystarczającą rezerwę, aby miejsce na dziennik przetrwało kilka dni (w weekendy?) Bez działającej kopii zapasowej. O ile nie możesz oczywiście interweniować w ciągu kilku minut o każdej porze dnia.
eckes

Odpowiedzi:

13

Nie, ale może to spowodować, że dziennik transakcji będzie mniejszy - dzięki czemu Twój SQL Server zajmie mniej miejsca.

Aby uprościć sprawę, powiedz, że generujesz 1 MB aktywności dziennika transakcji co minutę. Po 15 minutach wygenerowałeś 15 MB aktywności dziennika, ale oznacza to również, że Twój dziennik transakcji musi mieć co najmniej 15 MB wielkości (zakładając, że masz pełny model odzyskiwania).

Jeśli od razu utworzysz kopię zapasową tego pliku dziennika i nie masz otwartych transakcji (ani żadnej z wielu innych rzeczy, które spowodują, że SQL Server będzie nadal używać pliku dziennika), będziesz mógł usunąć fragmenty z tego, utrzymując mały plik dziennika.

Jeśli jednak zaczekasz 6 godzin, będzie to 360 MB zarejestrowanej aktywności - plik dziennika transakcji (LDF) byłby większy.

Używam tutaj małych, łatwych liczb - chcesz je zmienić w swoim własnym środowisku, aby zobaczyć wpływ na przestrzeń dziennika transakcji.

Brent Ozar
źródło
6

W każdym pliku dziennika transakcji zapisanym na dysku jest trochę narzutu, nawet jeśli nie wystąpiły żadne zmiany w bazie danych. W niektórych bazach danych, które posiadam (SQL Server 2014, kompresja włączona dla kopii zapasowych), dzienniki transakcji zapisywane w okresach bezczynności mają na ogół 9,5 kb na plik TRN.

Ale oprócz tego narzutu, dzienniki transakcji będą zawierać wszystkie zmiany wprowadzone od czasu zapisania ostatniego pliku TRN, więc ilość danych ogółem nie będzie się znacznie różnić.

Im częściej zapisujesz pliki, tym mniejsze ryzyko utraty danych.

Niektórzy eksperci zalecają wykonywanie kopii zapasowych dziennika co minutę . Tak naprawdę. Zasadniczo staram się je uruchamiać co około 3 minuty w godzinach pracy, gdy trwa większość działań, a następnie co około 10-15 minut w godzinach poza szczytem (w przypadku systemów, które mają rzeczywistą aktywność tylko w godzinach pracy, to znaczy jeśli twój system działa 24 godziny ...).

Krzywka
źródło