Recovery modeli

Objavljeno: 21-10-2014 | Autor: Milen Blagojević | Kategorija: Administracija

1

SQL Server backup i restore operacije se dešavaju unutar konteksta recovery modela baze. Recovery model je podešavanje baze koje kontroliše kako se loguju transakcije za odgovarajuću bazu, da li je moguće backup-ovati transakcioni log i koji tipovi restorovanja baze su mogući. Postoje 3 tipa recovery modela:

Prost (Simple) recovery model – Osnovni recovery model, transakcije se automatski brišu prilikom završetka transakcije i nije podržana nijedna operacija koja zahteva backup-ovanje transakcionog loga. Moguće je izvršavati full i diferencijalni backup. U slučaju bilo kakvog pada sistema sve promene na bazi koje su se desile od poslednjeg backup-a se moraju ponovo izvršiti. Sledeće funkcionalnosti SQL Servera nije moguće koristiti ukoliko je baza u ovom recovery modelu:

  • Log shipping
  • AlwaysOn ili Database mirroring
  • Media recovery bez gubitka podataka
  • Point in time recovery

Simple recovery model se koristi u sledećim situacijama:

  • Podaci nisu kritični i mogu se lako rekonstruisati.
  • Baza se koristi samo za testiranje ili development.
  • Podaci u bazi su statički.
  • Gubljenje transakcija koje su se desile posle poslednjeg backup-a nije problem.

Potpun (Full) recovery model – Sve transakcije koje su se desile ostaju u transakcionom logu dok se log ne backup-uje ili eksplicitno ne obriše. Prilikom backup-ovanja baze backup-uje se i transakcioni log. Moguće je bazu vratiti u bilo koje prethodno stanje (pod pretpostavkom da postoje odgovarajaći backup-i). Full recovery model se koristi kada su podaci u bazi kritični, kada je potrebno omogućiti point in time recovery u svakom trenutku ili kada se koristi database mirroring. Ukoliko koristite full recovery model potrebno je konfigurisati backup-e transakcionog loga, u protivnom transakcije zauvek ostaju u logu što može dovesti do nekontrolisanog rasta loga.
 
Bulk logged recovery model – Verzija potpunog recovery modela koja omogućava bulk copy operacije. Smanjuje veličinu loga tako što se prilikom bulk copy operacija transakcije minimalno loguju. Neke od operacija koje su minimalno logovane su:

  • bcp, BULK INSERT i INSERT… SELECT – kada se koristi transakciona replikacija ove operacije se loguju bez obzira da li je baza u bulk recovery modelu.
  • SELECT INTO – takođe, kada se koristi transakciona replikacija, loguje se i ova operacija bez obzira da li je baza u bulk recovery modelu.
  • CREATE INDEX operacije (uključujući i indeksirane view-ove).
  • ALTER INDEX REBUILD ili DBCC DBREINDEX operacije (OFFLINE ili ONLINE).

Promene koje su se desile od poslednjeg backup-a se mogu izgubiti ukoliko su te promene bulk logovane, u ostalim slučajevima nema gubitka podataka. Bulk logged recovery model se koristi u sledećim slučajevima:

  • Podaci su kritični ali ne želite da logujete velike bulk operacije.
  • Bulk operacije se ne izvršavaju u isto vreme kada i ostalo procesiranje.
  • Potrebna je mogućnost za point in time recovery.

Recovery model je moguće promeniti bilo kada sledećom komandom:

USE master;

ALTER DATABASE AdventureWorks SET RECOVERY FULL/SIMPLE/BULK_LOGGED;

Ili kroz SQL Server Management Studio:

Komentari (1)