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:
Super clanak! Samo tako nastavite…