Czytanie logu transakcyjnego bazy danych SQL Server’a

Log transakcyjny SQL Server’a zawiera rekordy, opisujące modyfikacje wykonywane na bazie. Dzięki tym informacjom istnieje możliwość odtworzenia bazy do określonego punktu w czasie, możliwość ponownego wykonania modyfikacji lub jej wycofania. Powstaje jednak pytanie, jak odnaleźć określoną transakcję i ponownie ją wykonać albo jak odwrócić skutki jej działania, powstałe na przykład po przypadkowym skasowaniu rekordów w bazie.

November 4, 2015

Otwórz plik LDF i wyświetl jego zawartość

Każda baza danych SQL Server’a składa się ze zbioru plików na poziomie system operacyjnego. Pliki te przechowują dane oraz informacje o zmianach w bazie. Poszczególne pliki mogą być używane tylko przez jedną bazę, a dane i informacja o zmianach w bazie nigdy nie są zapisywane w tym samym pliku. Dane przechowywane są w plikach MDF, natomiast wszystkie transakcje modyfikujące dane oraz transakcje modyfikujące na poziomie bazy danych, przechowywane są w drugim podstawowym komponencie bazy danych, w pliku LDF czyli w pliku logu transakcyjnego. Plik logu jest ciągiem rekordów. Fizycznie, rekordy logu transakcyjnego są przechowywane w jednym lub w wielu fizycznych plikach LDF.

November 4, 2015

Jak odtworzyć dane po przypadkowym usunięciu tabeli, jeśli nie mamy kopii zapasowej

Jeżeli przypadkowo wykonałeś polecenie DROP oraz posiadasz pełną kopię zapasową bazy danych, to zakładając, że po usunięciu tabeli nie pojawiły się żadne zmiany, wystarczy, że odtworzysz dane z kopii zapasowej, nadpisując oryginalną bazę danymi z kopii. Niestety, w rzeczywistości taka prosta sytuacja nie jest zbyt często możliwa. Czasami, ponieważ dane oraz obiekty w bazie zostały zmienione po wykonaniu polecenia DROP, czasami ponieważ nie posiadamy kopii zapasowej. Efektem czego jest niemożność odzyskania usuniętej tabeli i danych.

November 4, 2015