Sunteți pe pagina 1din 5

Conspect la MySQL 24

Tranzacii i restabilirea datelor


n acest paragraf v-om vorbi despre posibilitatea de a restabili datele, dup situaiile de e!ec a
sistemului, adic proprietatea "#$ % longitivitatea tran&aciei'
(rincipala cerin a longitivitii datelor tran&acii const )n faptul c, datele fi*ate de tran&acii
trebuie s se pstre&e )n sistem, c+iar dac )n urmtorul moment va avea loc e!ecul de sistem'
Sar prea c aceast garanie poate fi obinut dac )n timpul fiecrei operaii deodat de scris
toate modificrile pe disc' ,ceast metod nu este cea maai bunp, fiindc este o mare diferen
de lucru cu memoria operativ !i cea e*tern' -nica metod, pentru nu a pierde tare )n vite&
const )n folosirea onei tampon "bufer$ pentru paginele ba&ei de date )n memori aoperativ'
,ceasta )nseamn c datele se scriu pe disc nu direct, )n timpul e*ecutrii modificrii, dar mai
t.r&iu, dup o perioad cam mare de timp' /ectnd la aceestea )n memoria e*tern trebuie s
rm.n ceva, fiindc, )n ca& contrar nu va fi de unde de primit informaia pentru a fi restabilit'
Cerina ,tomicit!ii tran&aciei este, c tran&aciile neterminate sau ce au revenit nu trebuie s
lase urme )n 0#' ,ceasta )nseamn c datele trebuie s se pstre&e n ba&a de date cu re&erv, ce
permite s avem informaie dea1uns, pentru a putea restabili starea ba&ei de date la momentul
)nceperii tran&aciei e!uate' ,ceasta este asigurat de 1urnalul tran&aciilor' 2urnalul tran&aciilor
conine detalii despre toate operaiile de modificare a datelor )n ba&a de date, valoarea vec+e !i
nou a obiectului modificat, numrul de sistem al tran&aciei, obiect modificat !i alt informaie'
Modurile restabilirei datelor
3estabilirea ba&ei de date se poate efecua )n urmtoarele ca&uri4
Revenirea individual a tranzaciei. 3evenirea tran&aciei individuale poate fi iniiat sau
de tran&acia singur, cu instruc!iunea 35LL0,C6, sau de sistem' S70# poate iniia revenirea
tran&aciei )n ca&ul apariiei creiva gre!eli )n lucru8 tran&aciei "de e*emplu, )mprirea la &ero$
sau dac aceast tran&acie a fost aleas )n rol de 1ertv )n ca&ul re&olvrii problemelor de impas'
Eec uor al sistemului "refu& avariat al programului$' 3efu&ul u!or se caracteri&ea&
prin pierderea memoriei operative a sistemului' n acest moment au de suferit toate tran&aciile,
ce se e*ecutau )n acel moment de timp, se pierde coninutul tuturor buferelor 0#' #atele,
pstrate pe disc rm.n nemodificate' 3efu&ul poate s se )nt.mple, de e*emplu, )n re&ultatul
)ntreruperii avariate a curentului electric sau )n re&ultatului crorva probleme al procesorului'
Eec complicat al sistemului "refu& avariat al te+nicii$' 9!ecul complicat se
caracteri&ea& prin ie!irea din funcie al suporturilor e*terne de memorie' 9!ecul complicates
poate )nt.mpla, de e*emplu, )n re&ultatul defectrii capului de citire a discului rigid'
n toate trei ca&uri ba&a de restabilire a datelor, este 1urnalul tran&aciilor'
Ca !i paginele 0#, datele din 1urnalul tran&aciilor nu se )nscrie nemi1locit pe disc, dar
preventive se pstrea& )n buferul memoriei operative' n acest mod sistemul susine dou feluri
de bufere - bufere a paginelor ba&ei de date !i bufere ale 1urnalulului de tran&acii'
(aginele 0#, coninutul crora este )n bufer ")n memoria operativ $ difer de cele de pe disc, se
numesc pagine "murdare" (dirty' Sistemul permanent susine lista paginelor :murdare; - dirty-
lista' Scrierea paginelor :murdare; din bufer pe disc se nume!te )nscrierea paginelor n
memoria extern' 9vident, este necesar de prev&ut a!a legi de )nscrie a buferelor ba&ei de date
!i buferelor 1urnalului tran&aciilor, care vor satisface dou cerine4
<' Vitez maxim de executare a tranzaciilor. (entru aceasta este necesar de a )nscrie
paginele mai rar posibil' =deal, dac memoria operativ ar fi fost infinit, !i e!ecuri nu se
)nt.mplau nicic.nd, cea mai bun id>e era citirea complet a ba&ei de date )n memoria operativ,
lucr.ndul cu datele? numai n memoria operativ, !i scrierea paginelor modificate pe disc numai
)n momentul finisrii sistemei'
2' 7aranie, c la apariia e!ecurilor "de orice tip$, datele tran&aciilor finisate s poat fi
restabilite, dar datele tran&aciilor nefinisate de lic+idat, adic de a garanta restabilirea ultimei
stri a situaie 0#' (entru aceasta e necesar ceva de a )nscrie pe disc totu!i, c+iar dac aveam
memorie operativ la infinit

(agina < din @
Conspect la MySQL 24
,stfel, avem dou pricini pentru )nscrierea periodic a paginelor )n memoria e*tern % lipsa
memoriei operative !i posibilitatea de e!ec a sistemului'
(rincipiul de ba& al politicii de coordonare a )nscrierii buferului 1urnalului !i a buferelor
paginelor ba&ei de date este c, scrierea modificrilor obiectului ba&ei de date trebuie s a1ung
)n memoria e*tern a 1urnalului mai devreme ca obiectul modificat s a1ung )n memoria e*tern
a 0#' 3espectivul protocol de 1urnali&are "!i diri1area cu buferele$ se nume!te Write !ead "og
"W"$ - Ascrie dint#i n $urnal A, !i const )n faptul, c dac trebuie de )mpins )n memoria
e*tern obiectul modificat a 0#, atunci )nainte de aceasta trebuie de garantat )nscrierea )n
memoria e*tern a 1urnalului )nscriere despre modificarea lui' ,ceasta )nseamn, c dac )n
memoria e*tern a ba&ei de date se conine obiectul, asupra cruia este efecuat o comand de
modificare, atunci )n memoria e*tern a 1urnalului de tran&acii se conine scrierea despre aceast
operaie' =nvers nu este corect - dac )n memoria e*tern a 1urnalului se conine scrierea despre
careva modificare a obiectului, atunci )n memoria e*tern a ba&ei de date poate s nu fie obiectul
modificat'
5 condiie adugtoare pentru )nscrierea buferelor este !i cererea, ca fiecare tran&acie terminat
cu succes trebuie s fie real fi*at )n memoria e*tern' Ce ca& de e!ec a sistemului nu sar fi
)nt.mplat, sistemul trebuie s fie )n stare de a restabili starea 0#, ce conine re&ultatele tuturor
tran&aciilor fi*ate la timpul e!ecului'
, treia condiie de )nscriere a buferelor este limitarea volumurilor buferelor ba&ei de date !i a
1urnalului de tran&acii' (eriodic sau la apariia cruiva ca& "de e*emplu, numrul paginelor )n
lista % dirty este mai mare ca careva numr fi*at, sau numrul paginelor libere )n bufer este tare
mic$ sistemul prime!te a!a numitul punct de control' (rimirea punctului de control const )n
)nscrierea )n memoria e*tern a coninutului buferelor ba&ei de date !i scrierea fi&ic special a
scrierea punctului de control, care este lista tuturor tran&acii e*ecutate )n acest moment'
Se dovede!te c cerina minimal, ce garantea& posibilitatea restabilirii ultimei stri coordinate
a 0#, este )nscrierea la fi*area tranzaciilor n memoria extern a jurnalulului a tuturor
nregistrrilor despre modificarea bazei de datea acestei tranzacii' -ltima )nregistrare )n
1urnalul, efectuat din numele aceste tran&acii, este scrierea special despre sf.r!itul acestei
tran&acii'
Revenirea Individual a tranzaciei
(entru a putea efectua conform 1urnalului de tran&acii revenirea individual a tran&aciei, toate
)nregistrrile )n 1urnal de la aceast tran&acie se scriu )ntr-o list invers' nceputul listei pentru
tran&aciile neterminate este scrierea despre ultima modificare a 0#, efectuat de aceast
tran&acie' (entru tran&aciile finisate )nceputul listei este scrierea despre finisarea tran&aciei,
care obligatoriu a )nscris )n memoria e*tern a 1urnalului' Sf.r!itul listei tot timpul serve!te
prima scriere despre modificarea 0#, efectuat de aceast tran&acie' n fiecare )nregistrare este
un numr de system unic al tran&aciei, pentru a putea restabili lista direct a )nregistrrilor
despre modificarea ba&ei de date de aceast tran&acie'
3evenirea =ndividual a tran&aciei se e*ecut astfel 4
Se anali&ea& lista )nregistrrilor, create de aceast tran&acie )n 1urnalul de tran&acii "de
la ultima la prima modificare$'
Se selectea& scrierea din lista acestei tran&acii'
Se e*ecut operaia invers dup sens4 )n loc de operaia =/S93B se e*ecut ce
corespunde operaia #9L9B9, )n loc de operaiei #9L9B9 se e*ecut =/S93B, !i )n loc de
operaia direct -(#,B9 operaia invers -(#,B9, restabilind starea precedent a obiectului
0#'
5ricare din aceste operaii inverse se scriu )n 1urnal de asemenea' ,ceasta este necesar de
fcut, pentru c )n timpul e*ecutrii revenirii individuale se poate )nt.mpla satrea de refu&, la
restabilire dup care va trebui de revenit aceast tran&acie, pentru care nu sa efectuat complet
revenirea individual'
(agina 2 din @
Conspect la MySQL 24
La finisarea cu succes a revenirii )n 1urnal se introduce scrierea despre sf.r!itul
tran&aciei'

Restabilirea dup eec uor
/ect.nd la protocolul C,L, dup e!ec u!or nu toate paginele fi&ice a ba&ei de date conin date
modificate, fiindc nu toate paginele :murdare; a ba&ei de date au fost )nscrise )n )n memoria
e*tern'
-ltimul moment, c.nd garantat au fost )nscrise paginele :murdare;- este momentul primirii
ultimului punct de control' 9*ist @ variante de stare a tran&aciilor referitor la momentul
ultimului punct de control !i )n momentului e!ecului4
Figura 1 Cinci variante a tranzaciilor
-ltimul punct de control a fost primit )n momentul tc' 3efu&ul sistemei a avut loc )n momentul
tf' Bran&aciile B<-B@ se caracteri&ea& prin urmtoarele proprieti4
%& - tran&acia cu succes a finisat p.n la primirea punctului de control' Boate datele
acestei tran&aciisunt pstrate )n memoria de lung durat % cum )nregistrrile 1urnalului, a!a !i
paginele datelor, modificate de aceast tran&acie' (entru tran&acia B< operaii pentru revenire
nu se cer'
%' - tran&acia este )nceput )nainte de primirea punctului de control !i cu succes e
finisat, dup punctul de control, dar p.n la apariia e!ecului' nregistrrile 1urnalului
tran&aciei, referitoare la aceast tran&acie sunt )nscrise )n memoria e*tern' (aginele datelor,
modificate de aceast tran&acie, numai parial sunt )nscrise )n memoria e*tern' (entru aceast
tran&acie este necesar de repetat din nou acele operaii, care au fost efectuate dup primirea
punctului de control'
%( - tran&acia este )nceput p.n la primirea punctului de control !i nu este finisat din
motivul e!ecului' ,!a tran&acie este necesar de revenit' (roblema este )n faptul, c o parte a
paginelor datelor, modificate de aceast tran&acie, deacum se conine )n memoria e*tern %
acestea sunt acele pagine, care au fost modificate p.n la primirea punctului de control' -rme de
modificri, introduce dup punctul de control )n ba&a de datelor nu sunt' nregistrrile 1urnalului
de tran&acii, efectuate p.n la primirea punctului de control, sunt )nscrise )n memoria e*tern,
acele )nregistrri a 1urnalului, care au fost effectuate dup punctul de control, lipsesc )n memoria
e*tern a 1urnalului'
%) - tran&acia este )nceput dup primirea punctului de control !i cu succes este finisat
p.n la e!ecul sistemului' nregistrrile 1urnalului de tran&acii, referitoare la aceast tran&acie
sunt )nscrise )n memoria e*tern a 1urnalului' Modificrile )n ba&a de date, effectuate de aceast
tran&acie, lipsesc )n memoria e*tern a 0#' ,ceast tran&acie este necesar de repetat )n
)ntregime'
%* - tran&acia este )nceput dup primirea punctului de control !i nu este finisat )n
re&ultatul e!ecului' /ici o urm despre aceast tran&acie nu sunt nici )n memoria e*tern a
(agina D din @
Conspect la MySQL 24
1urnalului de tran&acii, nici )n memoria e*tern a 0#' (entru a!a tran&acie nu trebuie de
)ntreprins nimic' Cum ar fi c ea nici nu a fost )n genere'
3estabilirea sistemei dup e!ec u!or se efectua& ca parte a procedurii de restartare a
sistemului' La restartarea sistemei tran&aciile B2 !i B4 este necesar parial sau total de repetat,
tran&acia BD - parial de revenit, pentru tran&aciile B< !i B@ nu trebuie de )ntreprins nimic'' La
restartare sistemul e*ecut urmtoarele4
Se crea& dou liste a tran&aciilor -/#5 "anulat$ !i 39#5 "de repetat$' n lista -/#5
se )nscriu toate tran&aciile din ultimele )nregistrri a punctului de control "adic toate
tran&aciile, e*ecutate )n timpul primirii punctului de control $' Lista 39#5 r)m.ne goal' n
ca&ul nostru va fi4 -/#5 E FB2, BDG, 39#5 E F G'
ncep.nd cu )nregistrrile punctului de control se rsfoie!te )nainte 1urnalul de tran&acii'
#ac )n 1urnalul dH tran&acii se observ scrierea despre )nceputul tran&aciei, atunci
aceast tran&aciese adaug )n lista -/#5' n ca&ul nostru va fi4 -/#5 E FB2, BD, B4G, 39#5
E F G' ,tragem atenia, c urme ale tran&aciei B@ )n 1urnalul dH tran&acii /- sunt'
#ac )n fi!ierului de )nregistrare se observ scrierea C5MM=B despre finisarea
tran&aciei, atunci aceast tran&acie se adaug )n lista 39#5' n ca&ul nostru va fi4 -/#5 E
FB2, BD, B4G, 39#5 E FB2, B4G' ,tragem atenia, c )nregistrrile despre finisarea acestor
tran&acii sunt )n memoria e*tern a 1urnalului de tran&acii conform cerinelor minimale de
)nscriere a )nregistrrilor )n 1urnalul la fi*area tran&aciei'
C.nd se a1unge la sf.r!itul 1urnalului de tran&acii, ambele liste se anali&ea&' #in lista
-/#5 se lic+idea& acele tran&acii, care sunt )n lista 39#5' n ca&ul nostru va fi4 -/#5 E
FBDG, 39#5 E FB2, B4G'
#up aceasta sistemul anali&ea& 1urnalul tran&aciilor )napoi, ncep.nd cu momentul
punctului de control revin toate tran&aciile din lista -/#5' n ca&ul nostru vor reveni acele
operaii a tran&aciei BD, care au fost e*ecutate p.n la primirea punctului de control'
La sf.r!it, sistemul anali&ea& 1urnalul tran&aciilor )nainte, ncep.nd cu momentul
punctului de control, !i repetat e*ecut toate operaiile tran&aciei din lista 39#5' n ca&ul
nostru, sistemul va e*ecuta repetat toate operaiile tran&aciei B4 !i acele operaii a tran&aciei
B2, care au fost e*ecutate dup primirea punctului de control'
Restabilirea dup eecul complicat al sistemului
n ca&ul e!ecului complicat al sistemului ba&a de date pe disc se stric fi&ic' 0a&a restabilirii )n
acest ca& este Iurnalul tran&aciilor !i copia ar!ivat a +,. Copia ar+ivat a ba&ei de date
trebuie s fie creat periodic, )n dependen de vite&a de umplere a 1urnalului de tran&acii'
3estabilirea )ncepe cu copierea invers a ba&ei de date din ar+iv' ,poi se e*ecut anali&a
1urnalului de tran&acii pentru gsirea tuturor tran&aciilor, care sau terminat cu succes pn la
eec' #up aceasta conform 1urnalului tran&aciilor )n mod direct se repet toate tran&aciile
terminate cu succes' /u este necesar de revenire a tran&aciilor, oprite )n timpul e!ecului, fiindc
modificrile, effectuate de aceste tran&acii, lipsesc dup restabilirea ba&ei de date din copia de
re&erv'
5 situaie mai rea este ?JKLMNJO, c.nd sunt stricate !i ba&a de date, !i 1urnalul tran&aciilor' n
acest ca& unica, ce se poate de fcut % de a restabili starea ba&ei de date )n momentul ultimei
copii de re&erv' (entru a nu a1unge la a!a ca&uri 0# !i 1urnalul tran&aciilor de obicei se
pstrea& pe diferite discuri fi&ice, diri1ate de diferite controlere fi&ice'
Restabilirea datelor i SQ standard
Standardul limba1ului SQL nu conine cerine ctre restabilirea datelor, ls.nd aceste )ntrebri la
discreia elaboratorilor S70#'
Concluzii
(rincipala cerin pentru longevitatea datelor tran&acii const )n faptul, c datele tran&aciilor
fi*ate trebuie s se pstre&e )n sistem, c+iar dac )n urmtorul moment se va produce
e!eculsistemei' (strarea datelor cu surplus, ce permite restabilirea sistemului dup e!ec de
obicei asigur $urnalul tranzacilori.
(agina 4 din @
Conspect la MySQL 24
3estabilirea ba&ei de date poate fi efectuat )n urmtoarele ca&uri4
Revenirea -ndividual a tranzaciei.
Re.uz de sistem (re.uzul avariat al programelor/.
Eec complicat al sistemului "re.uzul avariat al te!nicii$'
(aginele ba&ei de date !i a 1urnalului de tran&acii nu se sciu )ndat pe disc, dar preventive se
scriu )n buferele memoriei operative' (aginele 0#, coninutul crora )n bufer se deosebesc de
coninutul pe disc, se numesc pagini "murdare" (dirty/' Scrierea paginelor :murdare; din bufer
pe disc se nume!te nscrierea paginelor n memoria extern.
(rincipiul de ba& al politicii de coordonare a )nscrierii buferului 1urnalului !i a buferelor
paginelor ba&ei de date este protocolul de 1urnali&are Write !ead "og "W"$ - Ascrie dint#i n
$urnal A' Condiia minimal ce garantea& posibilitatea restabilirii ultimei stri coordinate a 0#,
este nscrierea la fixarea tranzacilor n memoria extern a jurnalului a tuturor nregistrrilor
despre modificarea bazei de datede ctre aceast tranzacie.
3evenirea =ndividual a tran&aciei se e*ecut prin intermediul 1urnalului de tran&acii'
3estabilirea sistemului dup e!ec u!or se efectua& ca parte a procedurii de restartarea
sistemului' La restartarea sistemului tran&aciile trec procedura de identificare pentru a depista
tran&aciile finisate !i cele )ntrerupte )n timpul e!ecului' Bran&aciile, finisate cu succes p.n la
e!ec !i datele despre care lipsesc )n ba&a de date, se repet' 3estabilirea sistemuluidup e!ecul
complicat al sistemului se e*ecut prin intermediul copiei de ar+iva ba&ei de date !i a
1urnalului tran&aciilor'
(agina @ din @

S-ar putea să vă placă și