SQL – log transakcyjny

SQL może pracować w trzech trybach Recovery Model:
– simple
– full
– bulk logged

Simple pozawala na odtworzenie bazy tylko do momentu ostatnio wykonanej pełnej lub różnicowej archiwizacji.
Nie musimy się martwić o wielkość logu dziennika. RPO duże lub bardzo duże.

Full pozwala na odtworzenie bazy do dowolnej lub ostatniej poprawnej transakcji.
Musimy kontrolować wielkość logu dziennika gdyż wszystkie operacje są w pełni logowane. RPO małe odpowiednie do baz produkcyjnych.

Bulk Logged jest podobny trybu Full z tym, że nie loguje takich operacji jak tworzenie indeksu, operacje typu BULK, procedure WRITETEXT.
Przydaje się kiedy chcemy załadować jednorazowo dużą ilość danych i jednocześnie nie chcemy utracić informacji o pozostałych transakcjach.

SQL Express dla tworzonych baz danych automatycznie ustawiana tryb simple , pozostałe wersje full.

Zmiana trybu Recovery Model dla „testowa_baza” można dokonać odpowiednio 1-full , 2-simple:

ALTER DATABASE testowa_baza SET RECOVERY FULL;
ALTER DATABASE testowa_baza SET RECOVERY SIMPLE;

 

Sprawdzenie w jakim trybie pracuje baza lub wszystkie bazy:

SELECT recovery_model_desc FROM sys.databases WHERE name = 'testowa_baza';
SELECT name AS [Database Name], recovery_model_desc AS [Recovery Model] FROM sys.databases;

 

Wyszukiwanie tylko baz z Recovery Model ustawionym na FULL:

SELECT name AS [Database Name], recovery_model_desc AS [Recovery Model] FROM sys.databases WHERE recovery_model_desc = 'FULL' ;

 

Logi transakcyjne możemy przeglądać narzędziem ApexSQL Log .