Właśnie przeczytałem wiele dokumentacji MSDN i myślę, że rozumiem różne modele odzyskiwania i koncepcję łańcucha kopii zapasowych. Nadal mam jedno pytanie:
Czy pełna kopia zapasowa bazy danych obcina dziennik transakcji (używając trybu pełnego odzyskiwania)?
Jeśli tak: gdzie to jest wymienione w MSDN? Wszystko, co mogłem znaleźć, to to, że tylko KOPIA ZAPASOWA skraca dziennik.
Jeśli nie: dlaczego? Skoro pełna kopia zapasowa bazy danych rozpoczyna nowy łańcuch kopii zapasowej, po co utrzymywać transakcje, które zostały sfinalizowane, zanim pełna kopia zapasowa była aktywna w dzienniku?
źródło
Pełna kopia zapasowa NIE obcina dziennika, należy wykonać operację tworzenia kopii zapasowej dziennika. Pełna kopia zapasowa NIE resetuje łańcucha dziennika - to całkowicie zepsułoby replikację / wysyłkę dziennika itp.
Trzeba dokładnie przyjrzeć się, w jaki sposób SQL Server tworzy kopie zapasowe, ale wiedzieć, że transakcje w locie / długo działające nie są uwzględniane w kopii zapasowej (w przeciwnym razie kopia zapasowa może nigdy nie zostać ukończona), więc nie można powiedzieć, że pełna kopia zapasowa online-baza danych gwarantuje, że następna kopia zapasowa dziennika stanie się nieaktualna.
http://msdn.microsoft.com/en-us/library/ms175477.aspx
źródło
Z mojego zrozumienia jedyną rzeczą, która skraca dziennik transakcji, jest kopia zapasowa dziennika .
Pełna kopia zapasowa kopiuje tylko wystarczającą ilość dziennika, aby był spójny transakcyjnie, ponieważ operacja tworzenia kopii zapasowej zajmuje trochę czasu iw tym czasie skopiowane strony mogły ulec zmianie.
Nadal potrzebujesz kopii zapasowych dziennika w celu odzyskania punktu w czasie.
Nie mam MSDN do połączenia, ale mogę połączyć cię z blogiem Paula Randala , który był programistą w zespole SQL Server, napisał DBCC CHECKDB i części Books Online.
Odpowiada również na pytania na tym forum, więc byłby to jeszcze lepszy autorytet niż informacje z drugiej / trzeciej ręki ode mnie :)
źródło
Ludzie często mają błędne przekonanie na temat pełnej kopii zapasowej i kopii zapasowych dziennika. Aby kopia zapasowa działała w
FULL
modelu odzyskiwania kopii zapasowej, należy użyć dzienników T, ponieważ podczas tworzenia kopii zapasowych mogą nadal zachodzić transakcje w bazie danych (chyba że wykonasz tak zwanąCOLD
kopię zapasową po zamknięciu bazy danych). Oracle stosuje tę samą koncepcję, gdy baza danych jest wARCHIVELOG
trybie. Sekwencja tworzenia kopii zapasowej sprowadza się do tego:To jest powód, dla którego t-logi nie są domyślnie obcinane / zmniejszane, ponieważ są istotną częścią kontynuacji transakcji podczas fazy tworzenia kopii zapasowej.
źródło
Nie należy mylić przycinania kłody ze zmniejszaniem kłody.
TRUNCATE polega na usunięciu transakcji z dziennika, które znajdują się przed ostatnim punktem kontrolnym (punktem kontrolnym jest to, kiedy transakcje są opróżniane do samej bazy danych). Odbywa się to za pomocą polecenia BACKUP.
Aby SHRINK dziennik miał zmniejszyć rzeczywisty rozmiar pliku dziennika. Odbywa się to za pomocą poleceń DBCC.
źródło
Zasadniczo nie trzeba automatycznie zmniejszać dziennika transakcji za każdym razem, ponieważ dzienniki transakcji potrzebują miejsca do pracy, a jeśli zostaną obcięte automatycznie, pozostaną one prawie tego samego rozmiaru.
źródło