Dec 20 2007

Recovery model

Categorie: Backup | Log | Recovery | SQL ServerCatalin Dumitru @ 09:24

Modelul de recuperare (recovery model) reprezintă o opţiune de configurare care controlează modul în care transacţiile sunt păstrate în log, dacă log-ul de tranzacţii poate fi salvat ca şi copie de siguranţă, şi ce opţiuni de recuperare sunt disponibile pentru baza de date. Modelul ales are implicaţii asupra asupra recuperării din copiile de siguranţă şi implicaţii privind performaţa.

În MS SQL Server sunt disponibile 3 tipuri de modele: FULL, SIMPLE şi BULK-LOGGED. Aceste modele determincă cum SQL Server lucrează cu logul de tranzacţii şi determină operaţiile pe care le salvează în log şi dacă trunchiază (truncate) logul de tranzacţii. Trunchierea logului de tranzacţii este procesul de înlăturare a tranzacţiilor comise lăsând spaţiul liber pentru noi tranzacţii.

  • În modelul de recuperare FULL, SQL Server păstrează toate tranzacţiile în logul de tranzacţii şi nu-l trunchiază niciodată. Acest model permite recuperarea (restore) din copii de siguranţă a unei baze de date la momentul în care s-a salvat copia de siguranţă sau recuperare la un moment din timp (restore point in time).  Pentru SQL Server 2005 recuperarea în timp este disponibilă doar în versiunile Enterprise Edition şi Developer Edition.
  • În modelul de recuperare SIMPLE, SQL Server salvează cât mai puţine tranzacţii (minimally log) cele mai multe operaţii şi trunchiază logul de tranzacţii după fiecare checkpoint. În acest model nu se pot salva şi recupera copii de siguranţă ale logului de tranzacţii. Nu pot fi restaurate nici pagini de date.
  • În modelul de recuperare BULK-LOGGED, SQL Server salvează cât mai puţin în logul de tranzacţii operaţii bulk precum SELECT INTO şi BULK INSERT. În acest model, dacă un log conţine operaţii bulk, baza de date poate fi restaurată la momentul salvării copiei de siguranţă, nu şi în timp. Acest model este destinat a fi utilizat doar pe parcursul operaţiilor de import masiv de date.

Cum se modifică modelul de recuperare (recovery model)

Informaţii despre configurarea bazelor de date se poate obţine:

SELECT name, recovery_model_desc FROM SYS.DATABASES

Pentru modificarea acestei opţiuni se poate utiliza:

  • SSMS (SQL Server Management Studio) – click dreapta pe o baza de date – properties – pagina Options
  • ALTER DATABASE AdventureWorks SET RECOVERY FULL | SIMPLE |BULK_LOGGED

Etichete: , , ,