Asa cum o si spune numele, o astfel
de baza de date creeaza o imagine instantanee, statica a unei baze de date utilizator (nu si de
sistem). Astfel ca incarcarea adusa de interogari intensive poate fi
echilibrata prin utilizarea acesteia.
Tehnica pe care sistemul o
foloseste la redarea datelor are numele “copy-on-write”. Iata cum merg
lucrurile: initial sistemul construieste un schelet gol (un fisier “sparse”)
care face trimitere la paginile de date originale; pe masura ce paginile bazei
de date se modifica , ca urmare a unui update pe un tabel de exemplu , acestea
se copiaza in fisierul sparse astfel ca la o interogare a bazei de date
snapshot se pot folosi date de pe baza de date originala dar si din fisierul
“sparse.”.
Iata cum arata comanda de creare a
unei astfel de baze de date :
CREATE DATABASE a_Snapshot1248 ON
( NAME = N'a', FILENAME =N'D:\Microsoft Learning\2779\Teste\A_1248.ss')
AS SNAPSHOT OF a
unde “a ” este baza de date
originala , “D:\” este o partitie neaparat NTFS lansata numai pe o editie “Enterprise” a SQL 2005.
Mai departe se poate pune problema
invers: pot reface baza de date a folosind un snapshot?
Da, in comanda de restaurare se
prevede si o astfel de optiune. Inainte de a va prezenta un astfel de exemplu
mai fac un lucru, pentru a impusca 2 iepuri dintr-o data si anume adaug bazei
de date inca un fisier de log .
Comanda restore database a from
database_snapshot='a_Snapshot1248'
reface baza de date “a” exact ca in
momentul crearii snapshot-ului, inlaturand si fisierul de log de adineaori.
Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)