Você está na página 1de 24

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

5 - Re ecupera de Fa o alhas

Por qu a Restaurao (Rec ue cuperao) Necessr ria

Se uma transao f executad por um SGBD, o sistema deve garantir que: for da er r (1) to odas as ope eraes na transao f foram comp pletadas com sucesso e seu efeito ser m o grava perman ado nentemente no banco d dados ou (2) a transa de ao no ter nenhum efeito r e sobre o banco de dados o sobre qu e ou uaisquer ou utras transa es. O SG GBD no dever d perm mitir que alg gumas das o operaes d uma tran de nsao T se ejam aplicadas ao banc de co dado enquanto as outras operaes T no o forem. Isso poder ac os o f o contecer se uma trans sao falhar depois de executar a r e algumas de suas opera es, mas a antes de exe ecutar todas elas. s

Tipos d Falhas de Geralm mente as fal lhas so cla assificadas como de tr ransao, si istema ou mdia. m H d diversas raz possvei para a fal de uma transao d es is lha t durante sua e execuo: 1. O c computador falhar (cr r rash ou que do sistema): Um er de hard eda rro dware, softw ou rede ocorre em um sistem de compu ware e m ma utador duran a execu da trans nte o sao. Qued de hardw so, ge das ware eralmente, f falhas de mdia por exemplo, f m falha da mem mria princ cipal. 2. Um erro de transao o sistema: Alguma o m ou : operao da transao pode a causa falha, co ar omo o estou (overflow de um in uro w) nteiro ou um diviso por zero. Falhas ma F de transao tam mbm podem ocorrer p conta de valores er m por e rrados de pa armetros ou por o causa de um err de lgica na program a ro a mao. Al disso, o usurio pod interrom m de mper a trans sao durant sua execu te uo. 3. Err locais ou condies de exceo detectada pela trans ros u s o as sao: Dura a ante execu uo da tr ransao, podem ocor rrer determ minadas con ndies que necessitem do e m cancelamento d transa Por exemplo, os dados par a transa da o. ra ao no foram f encontrados. Ob bserve que uma condio de exc ceo como um saldo insuficien na o o nte conta do banco de dados d um banco pode fazer com que uma transa a de o, e ao, tal co omo a retira de fund seja can ada dos, ncelada. Ess exceo seria progra sa amada na pr rpria trans sao, porta anto, no seria consider rada uma fa alha. 4. Imp posio do controle de concor o rrncia: O mtodo de control de le concorrncia po optar por abortar u ode uma transa para se reiniciada posteriorm o er a mente
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na1

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

caso ela viole a serializa ou po o orque diver rsas transaes esto e um estad de em do dead dlock (impas sse). 5. Fal de disco Alguns blocos de dis podem p lha o: sco perder seus dados por causa do m funcion mau namento de uma leitura ou de um gravao, ou por cau de um crash a ma , usa do ca abeote de l leitura/escri de um di ita isco. Isso po acontec durante u opera de ode cer uma o leitur ou grava da trans ra o sao. 6. Problemas f P fsicos e ca atstrofes: Referem-se a uma li e ista sem fim de m probl lemas que i incluem falh de energ ou de ar-condiciona ha gia ado, fogo, f furto, sabota agem, sobre egravao d dados em discos ou fitas por en de m ngano ou m montagem de uma fita errada e e pelo operador. Falhas dos tipos 1 2,3 e 4 s mais fr 1, so reqentes q as dos t que tipos 5 ou 6. Se ocorr uma falh do tipo 1 a 4, o siste dever manter info rer ha ema ormaes su uficientes pa se ara recup perar dessa falha. Falhas de disco ou outras falhas catast f trficas, do tipo 5 ou 6, no 6 acon ntecem freq entemente; se elas oco ; orrerem, a restaurao uma taref especializ r fa zada.

1. CON NCEITOS DE RECUPERA AO

1.1 Esquema d Recupe de erao e Categoriza ao de Algoritmos de Recu uperao

A recupe erao de transaes q falharam significa, em geral, que o banc de que m co dado ser resta os aurado par o estado de consist ra tncia mais recente, ex xatamente como antes do mome s ento da falh Para isso, o sistem dever m ha. ma manter infor rmao sob as bre altera aes que foram apl licadas aos itens de dado pela vrias t s as transaes. Essa infor rmao , em geral, arm m mazenada no log (hist o rico) do sis stema.

1. Se houver um dano exten em uma grande por nso a ro do ban de dados, por nco conta de falha catastrfica tal como um crash de disco, o mtodo de recupe a a, o h erao resta aura uma c pia anterior do banco de dados, que estava g r q guardada em um arquiv de m vo arma azenamento (normalm mente uma fita), e o reconstri num esta i ado mais atual, reapl licando ou r refazendo a operaes das transa as s es armazenadas no l at o ins log stante da fa (restore de um bac alha e ckup). 2. Qu uando o ban de dad no for danificado fisicament mas se tornar nco dos te, t incon nsistente po causa de uma falha no-catast or e a trfica, dos tipos 1 a 4, a estrat gia
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na2

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

rever rter quaisq quer mudan nas que c causaram a inconsist ncia desfa fazendo alg gumas opera aes. Tamb ser ne bm ecessrio ref efazer algum opera de form a restaura um mas es, ma ar estad consisten do ban de dado Nesse caso, no n do nte nco os. c necessitamo de uma cpia os arqui ivada comp pleta do ban de dados De prefer nco s. rncia, as en ntradas man ntidas em um log m on-li do sistem sero co ine ma onsultadas d durante a rec cuperao.

Conceitu ualmente, po odemos distinguir duas tcnicas p s principais de recuperao de e falha no-catas as strficas de transao: ( atualiza adiada e (2) atualiz (1) o zao imedi iata. Na tcni de atua ica alizao adiada, somen se atual nte liza o banco de dados fisis came ente no disc logo dep co pois que um transa alcance s ponto d efetiva as ma o seu de o; atual lizaes so ento, g o, gravadas no banco de dados. An o e ntes que a efetivao seja o alcan nada, todas as transaes atualiza seus reg s am gistros no es spao de tra ansao loca (ou al buffe ers). Durant a efetiva as atual te o, lizaes so primeiro, p o persistentem mente regist tradas no lo e, ento, gravadas n banco de dados. Se uma transa falhar a og no o antes de alc canar seu p ponto de ef fetivao, e no ter mudado o banco de dados de forma nenh ela huma, assim um UND no ser necessrio Pode ser necessrio um REDO nos efeito das m, DO o. o O os opera aes de um transa que fora efetivada no log p ma o am as porque seus efeitos podero s no ter sido, ai inda, registr rados no banco de da ados. Portan a atual nto, lizao adia ada tamb conheci como o algoritmo N bm ida NO-UNDO/REDO.

Nas tcn nicas de atu ualizao im mediata, o banco de dad pode se atualizad por dos er do algum opera mas es de uma transao antes que ela alcanc seu pont de efetiv o e ce to vao. Entre etanto, essa operaes estaro no as s ormalmente registradas no log em disco, pois uma s s grava ao forad foi feita a da antes que el fossem aplicadas a banco de dados, torn las ao nando poss vel a recup perao. Se uma transa ao falhar depois de r registrar alg gumas mudanas no banco de da ados, mas an de alca ntes anar seu ponto de efe p fetivao, os efeitos de suas s e opera aes no b banco de d dados deve ero ser de esfeitos, isto , a tran o nsao dev ser ve rever rtida. No c caso geral de atualiza ao imedia ata, ambas, undo e r , redo, devem ser m exigi idas para a recupera Essa tc o. cnica, conhe ecida como algoritmo UNDO/ RE o EDO, exige ambas as operaes e mais fr e reqentemen usada n prtica. U nte na Uma varia do o algor ritmo, em q todas a atualiza so reg que as es gistradas no banco de dados antes que o uma transao seja efetiv vada, requer apenas un r ndo, assim ela con m, nhecida com o mo algor ritmo UNDO O/NO-RED DO.

1.2 Cac ching (Buff fferizao) d Blocos de Disco de d

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na3

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Em E geral, o processo de recupera est fort o temente ent trelaado co as om fun do siste es ema operac cional em particula com a bufferizao e o cachin de m ar, o ng pgin de disco na mem principa Normalm nas ria al. mente, uma ou mais p a pginas de disco, d que i incluem os itens de dad a serem atualizado so escondidas (cac dos m os, ched) nos bu uffers da m memria prin ncipal e l s atualiza so adas, antes de serem gr d ravadas de v volta no disco. O caching de pginas em dis tradic sco cionalmente uma fun do siste e o ema operaci ional, mas, por causa de sua impo ortncia par a eficincia dos procedimentos de recuper ra s rao, ele manipulad pelo SG do GBD por m meio de cha amadas de rotinas de baixo nvel do e sistem operacio ma onal. Muitas veze conve M es, eniente con nsiderar a r recuperao em termo de o os pgin de disco do banco de dados (b nas o blocos). Nor rmalmente, uma cole de buffer em o rs mem mria, cham mada cache de SGBD mantid sob o c D, da controle do SGBD co o o om propsito de controlar esse buffers. usado um catlogo p es m para o cach para con he ntrolar quais itens do b s banco de da ados esto n buffers. Ele pode ser uma ta nos abela de ent tradas <end dereco das p paginas do d disco, localizao do buffer>. Qua b ando o SGB solicitar uma BD r ao em algum item, ele p m primeiro ve erificar o catlogo de cache par determin se e ra nar algum das pg ma ginas de dis em cach contm o item. Se no contiv ento o item sco he ver, dever ser localizado no d disco, e as pginas de disco apro e opriadas se ero copiada no as cache. Pode ser que seja n r necessrio s substituir alguns dos buffers em cache para que a m a haja espao disp ponvel para o novo ite Alguma estratgia dos sistem operaci a em. as as mas ionais para substituio de pgina tais como a menos usada recent a u temente (lea recently used ast y L LRU) ou o p primeiro qu entra o primeiro qu sai (first ue ue t-in-first-ou FIFO), podem ut, ser u usadas na seleo dos buffers que s sero substit tudos. associado a cada buff no cach um bit sujeira (dirt bit), que pode ffer he ty ser includo na entrada do catlogo para indica se o buff foi ou no modifi o ar ffer icado. Quan uma p ndo gina lida pela prime vez no disco do banco de dad e passa para a eira dos a um b buffer de ca ache, o cat logo ser at tualizado co o novo endereo d pgina, e o bit om da sujei marca com 0 (zero). As ira ado ssim que o buffer for modificad o bit su r do, ujeira corre espondente entrada d catlogo apontado para 1 (u do o um). Quando o conted do o do buffe for substi er itudo (flsh hed) no cac che, ele dev ver primeir ser regr ro, ravado na pgina p de disco corresp pondente ap penas se se bit sujei for 1. O eu ira Outro bit, ch hamado bit pint unpi tambm necessri uma p in, io pgina no ca ache est pi inned (fixa ada) (valor de bit d 1 um) se e no puder escrever de volta no disco. ela o Duas es stratgias p podem ser empregada quando um buffer modificado for as o regra avado no di isco. A prim meira estrat tgia, conhe ecida como atualizando no loca (ino al place updating) regrava o buffer no m e ), mesmo local original do disco, sob l o brescrevendo eno, to, o valor dos itens de da ados alterad no disco Portanto, apenas um nica cp de dos o. ma pia cada bloco de d disco do ban de dados ser man nco ntida. A seg gunda estra atgia, conh hecida como shadowin grava um buffer at o ng, m tualizado em uma loca m alizao dif ferente do disco, d
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na4

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

assim diversas verses dos itens de da m, s ados sero mantidas. E geral, o antigo valo dos m Em or itens de dados, a antes da atu ualizao, chamado de imagem anterior (B d BFIM), e o novo valor depois da atualizao chamad de imag r, a o, do gem posteri (AFIM). Em shadowing, ior . amba a BFIM e a AFIM, podero se mantidas no disco, p as, , er s portanto, n estritam o mente necessrio mant um log p recuper ter para rao.

1.3 Re egistro Adia antado em Log, Rou m ubado/No-Roubado e Forado/ /NoFor ado

Quando um 'atualiz zando no local' for us sado, ser necessrio usar o log para g recup perao. Nesse caso, o mecanis smo de rec cuperao d deve garant que a BFIM tir B (imag anterio do item de dados se registrad em uma e gem or) eja da entrada de l apropria e log ada, que e essa entrada de log sej transferid (flushed) para o dis eja da d) sco, antes q a BFIM seja que M sobre escrita pela AFIM (im magem poste erior) no ba anco de dad do disco Em geral, esse dos o. proce esso conh hecido como registro a o adiantado em log. An que pos e ntes ssamos desc crever um p protocolo pa o registr adiantad em log, necessitamo distinguir entre dois tipos ara ro do n os r de informao de entrad em log para um comando de escrita (write): (1) as da infor rmaes ne ecessrias p para UNDO e (2) aq O quelas nece essrias par REDO. Uma ra entra ada de log do tipo R g REDO incl o novo valor (AF lui FIM) do ite gravado pela em o opera ao, uma v que ser necessrio refazer o efeito da op vez o e perao pelo log (apont o tando o val do item no banco d dados par seu AFIM As entr lor de ra M). radas de log de tipo UNDO g U inclu uem o valor antigo (BF r FIM) do ite uma vez que nec em, cessrio desf sfazer o efei da ito opera ao pelo lo (apontan o valor do item no banco de d og ndo dados de volta sua BF FIM). Em u algoritm UNDO/REDO, am um mo mbos os tipo de entrad de log s combin os das so nados. Alm disso, qu m uando houv possibilidade de ocorrer retorno em c ver cascata, ent tradas ler_it (ler item no log se tem m) ero consid deradas entra adas de tipo UNDO. o Como m mencionado, o cache do SGBD con o ntrola os blo ocos de disc escondid do co dos banco de dados que inclu s, uem no ape enas blocos de dados, mas tamb os blocos de s m ndic e os bloco de log do disco. Qua ce os o ando um reg gistro de log for gravad ele arm g do, mazenado no bloco d log corr o de rente, dentro do cache do SGBD. O log si o . implesment um te arqui de disco seqencia (append-o ivo o al only) e o ca ache do SG GBD poder conter div versos bloco de log (p exemplo, os n ltimos blocos de log) qu sero gra os por s ue avados no disco. d Quan uma atu ndo ualizao em um bloco de dados armazen m o nado no cac do SGB che BD for fe feita, um reg gistro de log associado ser gravado no ltim bloco de log no cache do g o mo SGB Com a abordagem registro ad BD. diantado no log, os blo ocos de log que contiv g verem regis stros de log associado a uma at g os tualizao em um blo de dado em parti e oco os icular devero ser grav vados primeiro no disc antes qu o bloco de dados possa ele me co, ue esmo, ser re egravado no disco. o
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na5

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

A term minologia p padro par recupera ra ao de SGBD inc clui os te ermos roub bado/no-ro oubado (st teal/no-stea e forad al) do/no-for ado (force e/no-force), que , espec cifica quand uma pg do gina do ban de dado poder se gravada e disco a partir nco os er em do ca ache: 1. Se uma pgi em cac atualiza por um transao no pude ser e ina che ada ma o er grava antes qu a transa se efetiv ela ser chamada de abordage no-rou ada ue o ve, e em ubada (no-s steal). O bi de pin-un it npin indicar se a pg r gina no pu uder ser esc crita de vol no lta disco Do contr o. rio, se o pr rotocolo per rmitir o buff atualiza antes qu a transa se ffer ado ue o efetiv ele ser chamado roubado (s ve, steal). Steal ser usado quando o gerenciador do cache (buffer) d SGBD n do necessitar d um fram de buffer para outr transao e o de me r ra o, geren nciador do buffer subs stituir uma pgina exi istente que tenha sido atualizada, mas , cuja transao n tenha se efetivado. no e 2. Se todas as p e pginas atua alizadas por uma trans sao forem imediatam m mente escri no disco quando a transao s efetivar, ela ser cha itas o se amada abor rdagem for rada (forc Do cont ce). trrio, ser c chamada n o-forada (no-force). O esqu uema de rec cuperao d atualiza adiado, segue uma abordagem node o a m steal Entretanto os sistemas de banco de dados normalment empregam uma estra l. o, o n te m atgia roubada/no-for rada (steal/no-force) A vantagem da steal qu ela ev ). ue vita a necessidade de um espao muito gran de buffe para o ar nde fer rmazenamen em mem nto mria de to odas as pg ginas atualiz zadas. A va antagem do no-force que uma p pgina atual lizada por uma transa ao efetiva dever ainda esta no buffe quando outra transao ada ar fer necessitar de at tualizao, eliminando, assim, o custo de I/ para ler novamente essa /O e pgin no disco. Isso pode oferecer um econom substancial no nme de operaes na ma mia ero de I/O quando u dada p O uma gina for atu ualizada pes sadamente p diversas transaes por s s. Para per rmitir a rec cuperao q quando um atualiza no loca (in-place for ma o al e) usada, as entrad apropria das adas exigida para a rec as cuperao d devem ser p permanentem mente regis stradas no d disco de lo ogon, antes que as alt teraes sej jam aplicad no banc de das co dado Por exem os. mplo, consid o segui protoco de regist adiantad em log (w dere inte olo tro do writeahea logging WAL), p ad para um algo oritmo de recuperao que exige ambas, UN NDO e RED DO: 1. A imagem an nterior de um item no pode ser s m o sobrescrita por sua im magem poste erior no ban de dado do disco; at que se registre to log de t nco os e odo tipo UNDO para O trans saes atual lizadas acima dess ponto , seria um gravao forada (f se ma o forcewritt ten) no disco o. 2. A operao de efetiva (commit) de uma transao no poder ser o a r comp pletada at que se regis todo log de tipo REDO e UNDO para qu essa transao stre g R ue seja d gravao forada (fo de o force-written no disco. n)
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na6

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Para facilitar o pro ocesso de re ecuperao, o subsiste ema de recu uperao dever d mant algumas listas relac ter s cionadas s transaes processada no sistem Estas inc as ma. cluem uma lista das tr ransaes a ativas que in niciaram, mas que ain no fora efetivad e m nda am das, pode incluir tambm as listas de todas as trans er saes efeti ivadas e ab bortadas, desde o ltim checkpoint (ponto de controle veja prxima se mo e p o). A ma anuteno dessas d listas torna o pro s ocesso de re ecuperao mais eficien nte.

1.4 Checkpoints n Log de S no Sistema e Fuzzy Chec F ckpointing

Outro tipo d entrada no log chamado d checkpoi O de de int. Um reg gistro [chec ckpoint] e escrito perio odicamente dentro do log, no pon em que o sistema grava e nto no banco de dad no disc todos os buffers do SGBD que tiverem si modific dos co e ido cados. Com conseq mo ncia, todas as transa que tive es erem suas en ntradas [com mmit, T] no log, o antes de uma en s ntrada [chec ckpoint], n necessitar ter suas operaes WRITE ref o ro s efeitas no ca de qued do sistem uma vez que todas as suas atu aso da ma, z ualizaes f foram regist tradas no ba anco de dad em disco durante o checkpointing. dos o, O gerenciador de recupera de um SG o GBD deve decidir em quais inter rvalos subm meter um checkpoint. O intervalo d deve ser me edido em tem que dizer, a ca m mpo er ada minu utos ou no nmero t de transa aes efetiv vadas desde o ltimo checkpoint, e os e valor de m o t so par res ou rmetros do sistema. Submeter u checkpo consiste nas o um oint segui intes aes: : 1. Sus spender a ex xecuo das transaes temporaria s s amente. 2. Forar a gravao no dis de todo os buffers na memr principa que sco os s ria al tenha sido alte am erados. 3. Esc crever um r registro de [ [checkpoint no log e f t] forar a gra avao do lo no og disco o. 4. Rea assumir a ex xecuo das transaes s s. Como c conseqnc do passo 2, um regi cia o istro de che eckpoint no log pode in ncluir tamb bm informa aes adicio onais, como uma lista dos ids (ide o entificaes das transaes s) ativa e as loca as alizaes (e endereos) de todos os registros do mais antigo ao mais o s, recen (ltimo) no log, d cada tran nte ) de nsao ativ Isso pod facilitar o 'desfazer das va. de r' opera aes da tra ansao, no caso de ser necessria sua revers r o.
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na7

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

O tempo necessrio para for a grava o o ar ao de tod os buff dos fers de mem mria modi ificados po atrasar o processamento da transao p causa d passo 1. Para ode t por do reduz esse at zir traso, na p prtica, c comum o uso de um tcnica chamada fuzzy u ma ckeck kpointing. Nessa tcnica, o sistema pod der reassum o pro mir ocessamento das o trans saes depo que o re ois egistro [che eckpoint] fo escrito no log, sem ter de espe o or o erar passo 2 termina Entretant at que o passo 2 esteja compl o ar. to, leto, o regis [checkp stro point] anter rior perman necer vlid Para fazer isso, o sistema m do. manter um ponteiro para o p check kpoint vlid que con do, ntinuar a a apontar para o registro [checkpoin no log. Uma a o nt] vez c concludo o passo 2, o ponteiro s ser mudado para o po o onto do nov checkpoi no vo int log.

1.5 Rev verter (Rol llback) uma Transa a o Se S uma tran nsao falha por qualq ar quer razo, depois de a atualizar o banco b de da ados, pode ser necessr reverter (rollback) a transao. Se algum valor de ite de rio em dado tiver sido alterado pe transao e gravado no banco d dados, el dever se resos ela o de le er taura ado aos seu valores anteriores (BFIMs). As entrada de log d tipo des us A as do sfazer (UND so usadas para re DO) estaurar os valores ant tigos dos ite de dado que dever ser ens o o rever rtidos. Se uma t transao T for revertid qualque transao S que tenh nesse nt da, er ha, terim, lido o valor de algum it e tem de dad escrito por T tam do mbm dever ser reve r ertida. Similarmente, u vez que S seja reve uma e ertida, qualq quer transa R que te o enha lido o valor de al lgum item d dado Y escrito por S tambm dever ser re de d evertida; e a assim por diante. d Esse fenmeno chamado reverso em cascata (cascadin rollback) e pode oc o a ng ) correr quan ndo o proto ocolo de re ecuperao garantir pl lanos recup perveis, m no ga mas arantir plano restritos ou livre de cas os s es scata (casc cadeless). A revers em cascata, o comp preensivelm mente, pode ser mais complexa e consumir m tempo. Por isso, quase mais q todos os mecani s ismos de recuperao s projetad de modo que a reve so dos o erso em ca ascata nunc seja exigi ca ida.

2. TCN NICAS DE RECUPERAO BASEAD DAS NA ATU UALIZAO ADIADA

A idia cont tida nas tc cnicas de at tualizao a adiada po ostergar qua alquer atual lizao real no banco de dados a que a transao co l at t omplete sua execuo com a o suces e alcan seu po sso nce onto de efe fetivao. Durante a e D execuo d transa as da o,
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na8

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

atual lizaes so registrada apenas no log e nos buffers de cache. Qua o as o ando a transao alcan nar seu pon de efetivao e se forar gra nto avao do lo no disco as atualizaes og o, sero registrada no banco de dados. Se uma transao fa o as o alhar antes de alcana seu ar ponto de efetiva o ao, no se necessrio desfazer nenhuma o er operao, po orque a transao no a afetou o ba anco de dad no disco de forma nenhuma. Embora is simplifiq a dos o, a sso que recup perao, no poder se usado na prtica, a menos que a transae sejam cu er m as es urtas e cada transao altere pou ucos itens. Para outros tipos de transaes, h execu utao poten ncial fora d espao d buffer, d do de dado que as mudanas da transa precisam ser s s o m garan ntidas nos buffers de cache at o ponto de efetiva o. Podem declara um mos ar proto ocolo tpico de atualiza ao adiada como segue e: 1. Um transa no pode mudar o banco de d ma o dados em d disco at qu ela ue alcan seu pont de efetivao. nce to 2. Um transa no alcan seu pon de efetiv ma o na nto vao at q todas as suas que s opera aes de atu ualizao se ejam registr radas no log e at que seja forad a grava do g da o log n disco. no Observ que o pa ve asso 2 um reafirma do protocolo de re ma o egistro adian ntado no lo (write-ah og head loggin WAL Como o banco de d ng L). dados nunca atualizad no a do disco at que a transao seja efetiva o ada, nunca ser necessria qualq quer opera de o UND (desfaz DO zer). Este conhecid como algoritmo de recupe do a erao de NOUND DO/REDO. REDO (ref fazer) ser necessrio no caso de o sistema f n falhar depoi que is uma transao f efetivada mas antes que todas as suas mudanas seja registrad no for a, s am das banco de dados em disco. Nesse caso as operaes da transao sero refeitas a partir o, o das e entradas de log.

2.1 R Recuperao Usando Atualiza o ao Adia ada em um Amb biente Mon nousurio

Em E tais amb bientes, o alg goritmo de recuperao pode ser b o bastante sim mples. O alg goritmo RD DU_S (Reco overy Using Deferred Update in a Single-user environme U r ent recup perao usa ando atualiz zao adiada em ambie ente monou usurio) usa o procedim a mento RED apresent DO, tado a segui para refa certas operaes es ir, azer o screver_item m: PROCE EDIMENTO RDUS Usa dua listas de transaes: as transaes O as e efetiv vadas desde o ltimo c e checkpoint e as transa es ativas (pelo meno uma transao os ir c nessa categoria po cair orque o sist tema mon nousurio). Aplicar a o operao REDO R para todas as o operaes e escrever_item das tran nsaes efet tivadas do log, seguin a ndo seqncia em qu elas foram escritas n log. Rein ue m no niciar as tran nsaes ativ vas.
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na9

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

O proce edimento R REDO defi finido como segue: REDO( (WRITE_O Refa OP) fazer uma operao es o screver_item em WRIT _OP m TE consi em exa iste aminar sua e entrada no l [escreve log er_item, T, X, novo_va alor] e apon o ntar valor do item X no banco d dados par novo_val que a imagem po r de ra lor, osterior (AFIM). A opera REDO deve ser e o equivalente em potn e ncia (idempotent) isto , execu ut-la vria vezes equivalente a execut apenas uma vez. De fato, to o as e -la odo proce esso de rec cuperao d deve ser equ uivalente em potncia. Isso porqu se o sis m ue, stema falha durante o processo d recupera a prxim tentativa de recuper ar de o, ma a rao poder ter ria de R REDO (refaz certas o zer) operaes escrever_item que j tiv m vessem sido refeitas du o urante o pri imeiro proc cesso de re ecuperao. O resultad da recu . do uperao de uma qued do e da sistem que oc ma corresse du urante a re ecuperao seria o m mesmo que o resultad da do recup perao qua ando no h queda dur rante a recu uperao! Apenas a transae da lista a as es ativa no ter afetado o banco de dados por causa ro do pr rotocolo de atualizao adiada, e elas sero totalmente ignoradas p e o pelo proces de sso recup perao por rque nenhum de suas operaes foram reflet ma f tidas no ban de dado em nco os disco Entretant essa tra o. to, ansao dev ver, agora, ser reiniciada autom , maticamente pelo proce esso de recu uperao ou manualme pelo usu u ente urio. A Figu mostra u exemplo de recupe ura um erao em um ambien monousu nte urio, no q qual a prim meira falha o ocorre dura ante a exec cuo da tra ansao T2. O process de so recup perao ir refazer a en ntrada [escrever_item, Tlt D, 20] d log, apon do ntando o val do lor item D para 20 (seu novo valor). As entradas [w write, T2, ...]no log so ignoradas pelo o s proce esso de rec cuperao p porque T2 n foi efet no tivada. Se u uma segunda falha oc correr duran a recuperao da p nte primeira, o mesmo pro ocesso de re ecuperao ser repetid do do incio ao fim, co resultado idnticos o om os s.

(a) ler_item( (4) ler_item( (D)

T1 ler_item(B)

T2

escrever r_item(B) ler_item(D)

escrever_ _item(D) escrever_ _item(D) (b)

[inicia_ _transacao, 7",]


Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a10

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

[ler_ite Tv D, 20 em, 0] [confirm T,] ma, [inicia_ _transacao, 7"2] [ler_ite T,,, B, 1 em, 10] [escrev item, T2, D, 25] <- q ver queda do sistema As operaes [escr rever_item, ...] de 7,so refeitas. o As entr radas no log de T2 so i g ignoradas pelo processo de recupe erao.

Um exe emplo de re ecuperao usando atua alizao em ambiente m m monousuri (a) io. As o operaes R READ e WR RITE de duas transaes, (b) O log do sistem no instan da s g ma nte qued da.

2.2 At tualizao Adiada co Execu om o Concorrente em um Amb m biente Mult tiusurio

Para sis stema mult tiusurios c com contro de con ole ncorrncia, o process de so recup perao pod ser mais complexo, d de dependendo dos protoc o colos usado para o con os ntrole de co oncorrncia Em muito casos, os processos de controle de concorr a. os e rncia e de recupera o so in nter-relacion nados. Em geral, quanto maior o grau d concorr r de rncia desej jado, maior o tempo co onsumido pa a recupe ara erao. Consid dere um sist tema em qu o control de conco ue le orrncia usa bloqueio estrito a e em d duas fases, assim, os bloqueios nos itens permanecero em efeito at que a , s s q trans sao alcan seu pon de efetiv nce nto vao. Depo disso, os bloqueios sero liber ois s s rados, garan ntindo plan restritos e serializ nos s veis. Supo ondo que a entradas de [checkp as point] foram feitas no log, um possvel algoritmo de recuper m o rao para esse caso, que , cham mamos RDU U_M (Reco overy using Deferred Update in a Multiuser environme U ent recup perao usa ando atualiz zao adiada em ambiente multius a surio) dad a seguir. Esse do . proce edimento us o procedimento RED definido anteriorm sa DO o mente. PROCE EDIMENTO RDU_M (COM CH O M HECKPOIN NTS) - Usa duas lista de a as trans saes mant tidas pelo si istema: as t transaes T efetivadas desde o l s ltimo check kpoint (lista de efetiva a ao) e as tr ransaes T ativas (list de ativas). REDO ( T' ta (refazer) tod as das opera aes WRI ITE das tra ansaes ef fetivadas no log, na seqncia em que ela se o as
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a11

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

encontram no log. As tra ansaes qu estivere ativas, mas no e ue em efetivadas, sero efetiv vamente can nceladas e d devero ser novamente submetidas. e A Figu mostra u plano d execuo possvel d transa ura um de o das es. Quand foi do feito o checkpoi no tempo t1, a trans int o sao T1 foi efetivada, enquanto as transaes T3 e s s T4 n o foram. Antes da q o queda do sistema no te empo t2, T3 e T2 foram efetivadas, mas m T4 e T5 no. De acordo com o mtodo RDU_M, no necess m n srio refazer as opera de r es escre ever_item d transao T, ou q da o qualquer tra ansao efetivada antes do tempo t1 do ltim checkpoi Entretan as oper mo int. nto, raes escre ever_item d T2 e T3 de de evem ser re efeitas porqu ambas a transaes alcanar ue as ram seus pontos de ef fetivao d depois do ltimo check kpoint. Lem mbremos qu a grava no log forada a ue o antes da efe fetivao de uma e trans sao. As tr ransaes T4 e T5 so ignoradas: elas so e o efetivament cancelada ou te as rever rtidas porqu nenhuma de suas op ue a peraes wri ite_item for registra ram adas no ban de nco dado sob o prot os tocolo de at tualizao a adiada.

2|Tem mpo

checkpoint t'quedadosistema

Podemos tornar o a s algoritmo d recupera de ao NO-UN NDO/REDO mais efic O ciente notan que, se um item de dado X como ind ndo dicado nas e entradas de log tiver sido r atual lizado por m de uma transao efetivada desde o lti mais a d imo checkpo oint, apenas ser s necessrio RED a ltima atualizao de X do log durante a recupera De qua DO l o. alquer form as outras atualiza seriam sobrescritas por esse ltimo RED Nesse caso, ma, es s DO. inicia amos pelo f do log, assim, sem fim mpre que um item for re m efeito, ele s ser adicion nado a uma lista de iten refeitos. A ns Antes de o R REDO ser aplicado a u item, a l a um lista verifi icada; se o item aparec na lista, ele no ser refeito no cer , r ovamente, u uma vez qu o ltimo valor ue j foi recuperado i o. Se uma transao for interrom a mpida por qualquer ra q azo (digam pelo mtodo mos, de de eteco de i impasse deadlock), ela simplesmente ser resubmetida, uma vez que no a alterou o ba anco de dad em disc Uma de dos co. esvantagem do mtodo descrito aqui m o a que ele limita a concorr rncia de t transaes porque todos os ite ens perman necem bloqu ueados at que a trans sao alcan seu pon de efetiv nce nto vao. Alm disso, ele pode m exigi espao ex ir xcessivo de buffer par controlar todos os it e ra tens atualiz zados, at que as q trans saes sejam efetivada O benef m as. fcio princip do mto que as operaes da pal odo trans sao nunca tero de se desfeitas por duas ra a er azes:
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a12

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

1. Uma transao no regist a o trar nenhu uma mudan no banc de dado em na co os disco at imedia o atamente ap seu pont de efetiva ps to ao isto , at que ela complet sua o te execu uo com sucesso. Po ortanto, um transao nunca se revertida em fun de ma o er o falha durante a execuo d transae as de es. 2. Uma transao nunca ler o valor de um item escrito por uma transao a o d ainda no-efetiv a vada, porqu seus iten permanecero bloqu ue ns ueados at que a transao alcan seu pont de efetivao. Portan no oco nce to nto, orrer rever rso em casc cata.

2.3 A de Tran es nsao que No Afeta o Banco de Dados e am o

Em geral, as aes q no afe que etam o banc de dados, tais como gerar e imp co , primir mens sagens ou relatrios de informa aes recup peradas do banco de dados. Se uma trans sao falhar antes de se completar, podemos no desejar que o usur obtenha esses r e , n rio relat rios. Se re elatrios er rrados forem produzid m dos, parte d processo de recupe do o erao teria de informa ao usuri que eles esto errados, uma vez que o usu ar io z urio pode tomar t uma ao com base nesse relatrio que afet es os tem o banc de dado Portanto tais co os. o, relat rios dever riam ser ger rados somen depois que a trans nte sao alcan nasse seu ponto p de ef fetivao. U mtodo comum par o tratame Um ra ento de tais aes esc colher coma andos que g gerem relat rios, mas o mantenh os ham como ta arefas em lo (batch j ote jobs), execu utadas apen depois que a transa alcanar seu ponto de efetiva Se a tra nas o r o. ansao falh as har, taref em lote s fas sero cancel ladas.

3. TCN NICAS DE RECUPERA O BASEAD DAS EM ATU UALIZAO IMEDIATA O A

Nessas t tcnicas, qu uando uma transao emite um comando d atualiza de o, o banco de dados pode ser 'imediatam s mente' atual lizado, sem nenhuma necessidad de m de esper que a tr rar ransao alc cance seu p ponto de efe fetivao. Entretanto, u uma operao de atual lizao deve ainda assi ser registrada no lo (em disco antes de sua aplicao no e, im, og o) banco de dados usando o protocolo registro ad o diantado em log (write-ahead logg m ging), de ta forma que possamos recuper-la em caso de falha. al e a e Deve ha aver condi para de es esfazer o ef feito de op peraes de atualizao que o tenha sido ap am plicadas ao banco de dados po uma tran o e or nsao falh Isso feito ha. rever rtendo a tr ransao e desfazendo os efeito de suas operaes escrever_ os s s _item. Teor ricamente, p podemos identificar do tipos pri ois incipais de categorias d algoritm de de mos atual lizao imed diata. Se as tcnicas de recupera garantire que toda as atualizaes e o em as
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a13

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

de um transa sejam reg ma o gistradas no banco de dados em di o d isco antes d a transa se de o efetiv var, nunca haver nec cessidade de REFAZER quaisque operaes das transaes e er efetiv vadas. Este chamad algoritm de recup e do mo perao UN NDO/NO-RE EDO. Por outro lado, se for perm , mitido tra ansao se efetivar ant que tod as suas mudanas sejam tes das s escri itas no ban de dado temos o caso mai geral, co nco os, is onhecido po algoritm de or mo recup perao UN NDO/REDO Essa , tambm, a tcnica mais comp O. plexa. A se eguir, discu utiremos do exemplo de algor ois os ritmos UND DO/REDO e os deixar remos como um exerc ccio para o leitor desen nvolver a variao de UNDO/NOU -REDO.

3.1 Rec cuperao UNDO/RE EDO Basea em Atu ada ualizao Im mediata em um m Amb biente Mon nousurio

Se ocorrer uma falh num siste monous ha ema surio, a tra ansao em execuo (a ativa) no m momento da falha pod ter registrado algum mudan a de mas nas no ban de dado O nco os. efeito de todas e o essas opera es dever ser desfeit O algorit to. tmo de recu uperao RI U_S I (Reco overy using lmmediate Update in a Single-ns environm recu g e ser ment uperao us sando atual lizao ime ediata em um ambiente monou usurio) usa o proced a dimento RE EDO, defin nido anteriormente, e ta ambm o pr rocedimento UNDO, de o efinido abai ixo. PROCE EDIMENTO RIU_S O 1. Usar duas l U listas de tr ransaes mantidas pelo sistema as transaes m a: efetiv vadas desde o ltimo c e checkpoint e as transa es ativas (pelo meno uma transao os dessa categoria ir falhar, p o sistem monou a pois ma usurio). 2. D Desfazer tod as oper das raes escrever_item da transa ativa do log, o o usando o proced dimento UND descrito a seguir. DO

3. Re efazer as op peraes es screver_item das transa m aes efetiv vadas do lo na og, seqncia em qu elas fora gravada no log, usando o pro ue am as u ocedimento REDO descrito o anter riormente. O proce edimento U UNDO def finido como segue: o UNDO (WRITE_O Desfaz uma ope O OP): zer erao escre ever_item w write_op con nsiste em e examinar su entrada de log [e uas as escrever_ite T, X, v em, valor_antigo valor_novo] e o, apon ntar o valor do item X no banco de dados para o va r o s alor antigo, que perten nce imag anterior (BFIM). P desfaze um nme de opera gem r Para er ero aes escrev ver_item de uma e
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a14

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

ou m mais transa es do log, deve-se manter a ordem inve ersa da ord dem na qu as ual opera aes foram gravadas n log. m no

3.2 Re ecuperao UNDO/REDO Base eada em A Atualizao Imediata com o Exec cuo Conc corrente

Quando a execu concorre o ente for pe ermitida, o processo de recupe erao depender nova amente dos protocolo usados para o con s os ntrole de c concorrnci O ia. proce edimento R _M (Reco RIU overy using lmmediate Updates fo a Multiu for user environ nment re ecuperao usando atu ualizaes im mediatas pa um amb ara biente mult tiusurio) es sboa um a algoritmo d recupera para tra de o ansaes co oncorrentes com atual s lizao imediata. Assu umimos que o log inclu checkpoints e que o protocolo d controle de concorr e ui de rncia produ planos r uz restritos como, por exemplo, o protocolo de bloquei em duas fases io estrit Lembrem que um plano rest to. mos m trito no pe ermite que u uma transa leia ou grave o um it tem, a meno que a tra os ansao que gravou o it por ltimo tenha si efetivad (ou tem ido da abort tada e rever rtida). Entretanto, dead dlocks pode ocorrer no bloquei em duas fases em io estrit exigindo assim, a to, o, abortar e U UNDO (des sfazer) as t transaes. Para um plano p restri ito, UNDO (desfazer) uma ope O ) erao impl lica retorna o antigo valor ao item ar o (BFIM).

PROCE EDIMENTO RI UM O 1. Usar duas lis stas de tran nsaes ma antidas pelo sistema: a das transaes o efetiv vadas desde o ltimo c e checkpoint e a das trans saes ativa as. 2. Desfazer to D odas as op peraes escrever_item feitas p e pelas transaes ativa as(no-efetiv vadas), usa ando o pro ocedimento UNDO. A opera devero ser As es o desfe eitas na orde inversa em que elas foram grav em s vadas no lo og. 3. Refazer todas as opera escrever es r_item das t transaes e efetivadas do log d na se eqncia em que elas fo m oram escrita dentro do log. as o O passo 3 ser ma eficiente se for inic ais e ciado no fim do log e refizer ape m enas a ltim atualiza de cada item X. Se ma o a empre que um item for refeito, ele ser adicio u e onado list de itens r ta refeitos, por rtanto, no ser refeito novamente Um proce o e. edimento si imilar pode ser planeja para me e ado elhorar a eficincia do passo 2. p
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a15

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

4. PAG GINAO SH HADOW (SOM MBRA)

Este esq quema de r recuperao no neces o ssita de um log quand em amb m do biente mono ousurio. Em um ambi iente multiu usurio, um log pode se necessri para o mtodo er io de co ontrole de concorrnci A pagin ia. nao shado consider que o ba ow ra anco de dados comp posto por um nmero d pginas d tamanho fixo (ou bl m de de o locos de dis sco) diga amos, n para propsito de recu uperao. Um catlogo com n entr radas cons strudo, no qual a q 111 113 s na i"" entrada a aponta para ai a pgi do banc de dados em disco. S no for muito ina co Se m grand o catlo ser m de, ogo mantido na memria principal, e todas as re eferncias de leitur ou grava ra ao para as pginas do banco de dados p a passaro por ele. Quan se r ndo inicia uma tran a nsao, o c catlogo corrente cujas entrad apontam para as mais c das m recen ntes ou cor rrentes pg ginas em di isco copiado em um catl m logo shado O ow. catl logo shadow , ento, salvo no d w disco, enqua anto o cat logo corren usado pela nte o trans sao. Durante a execu da tran o nsao, o catlogo sha adow nunca modifi a icado. Quan ndo uma o operao e escrever_item for exe m ecutada, um nova c ma cpia da pgina p modi ificada do b banco de d dados ser c criada, mas a cpia an ntiga dessa pgina no ser o sobre escrita. Ao contrrio, a nova pgi ser escr em outr lugar em algum bloco ina rita ro b de di isco ainda n usado. A entrada do catlogo corrente ser modificad para apon o no o c da ntar novo bloco de disco, enqu o uanto o cat tlogo shad dow no ser modifica e contin r ado nuar apon ntando para o bloco d disco an a de ntigo no modificado. A Figura 19.5 ilust os m . a tra conceitos de cat tlogos shad e corre dow ente. Para p ginas atual lizadas pela transao, sero a mant tidas duas v verses. A v verso antig referida pelo catlo shadow a nova ve ga a ogo w; erso, pelo catlogo co orrente.

blocos de disco do banco de d o dados (pgin nas) catlog corrente ( go (depois de a atual as pg ginas 2, catlog shadow (no-atualiza go ado) Um exe emplo de pa aginao sh hadow.

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a16

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Para se recuperar de uma fal durante a execu de uma transao, ser lha e o a , sufic ciente livrar r-se das pg ginas modif ficadas do banco de da b ados e desc cartar o catlogo corre ente. O esta do banc de dados antes da execuo d transao est totalm ado co da o mente dispo onvel no c catlogo sh hadow, e es estado ser recuperado pela reinstala do sse o catl logo shadow O banco de dados re w. etornar, assim, ao esta anterior ao da transao ado r que estava exec cutando qua ando ocorre a falha, e quaisque pginas modificada so eu er as desca artadas. Efe etivar uma t transao co orresponde a descartar o catlogo s shadow ant terior. Uma vez que a recupera no en a o nvolve desfa fazer nem r refazer iten de dado, essa ns , tcni ica pode ser catego orizada com uma tcnica NO mo O-UNDO/N NO-REDO para recup perao. Em um ambiente multiusu m e rio com tr ransaes c concorrentes, os logs e os check kpoints de evem ser incorporad dos s tc cnicas de paginao shadow. Uma desvantagem da paginao shadow q as pgi a que inas em atualizao do banco de dados o d muda de local am lizao no d disco, torna ando difcil manter pg ginas relacio onadas junt no tas disco sem dispo de estrat o or tgias comp plexas para o gerencia a amento de armazenam mento. Alm disso, se o catlogo for grande o tempo despendid pelo siste m o e, do ema operac cional (over rhead) para gravar c a catlogos shadow no disco, qua ando as tr ransaes forem f efetiv vadas, sig gnificativo. Uma compl licao adic cional com manipul o lixo qu mo lar uando uma transao f efetivad As pgi for da. inas com re eferncias a antigas no c catlogo shadow que t tenham sido atualizada devem ser liberadas e adiciona o as s adas a uma lista de p ginas liberadas, para uso posteri Essas p ior. pginas no sero mai necessri depois que a o is ias q trans sao for e efetivada. O Outra quest que uma opera to ao, para migrar entre os catl logos corren e shadow dever se implemen nte w, er ntada como operao a atmica.

5. O AL LGORITMO DE RECUPE ERAO AR RIES

Descreve eremos, ago o algor ora, ritmo ARIE como um exemplo de algoritm de ES m mo recup perao usa ado em sistemas de banco de dados. AR RIES usa u uma abord dagem roubada/no-for rada (steal/ /no-force) p grava e est baseado em tr conceito (1) para o rs os: regis stro adianta em log (write-ahea logging) (2) repeti ado ad ), io de his strico dura ante o refaz e (3) mu zer udanas do log durante o desfazer J discutim o regis adiantad no e r. mos stro do logna Seo 19.1.3. O segu a undo concei repeti de histr ito, o rico, signifi que o ARIES ica A rel todas as a aes tomad pelo si das istema de banco de d b dados antes da queda para s recon nstruir seu estado quando a qued ocorreu. Transaes que no f da foram efetiv vadas em tempo de qu ueda (transaes ativa so desf as) feitas. O ter rceiro conce eito, usand log do dura ante desfaz zer, evitar que o ARI IES torne a desfazer o operaes j desfeitas, caso
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a17

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

ocorr uma falh durante a recupera ra ha ao, com conseqent reincio do process de te so recup perao. O proced dimento de recupera ARIES consiste em trs passo principais: (1) e o c m os anli ise, (2) RE EDO e (3) UNDO. O passo de anlise identifica as pginas lixo d s (atua alizadas) no buffer e o conjunto das transa o es ativas no momen da qued O nto da. ponto apropriad no log onde a operao REDO dev comear tambm ser o do g, R ve r, deter rminado. na fase RE EDO que as atualizaes so realm s mente reapl licadas no banco b de da ados a parti do log. Ge ir eralmente, a operao REDO ap plicada apen s transaes nas efetiv vadas. Entr retanto, no ARIES, es no o caso. Cer sse rtas informa aes no lo do og ARIE fornecer o ponto de incio p ES ro o para REDO a partir d qual o R O, do REDO dever ser r aplic cado s ope eraes at que seja al lcanado o fim do log Alm dis g. sso, informaes arma azenadas pe ARIES e pelas pgi elo inas de dad permitir ao ARIE determin se dos ro ES nar a ope erao a ser refeita foi, de fato, ap r , plicada ao ba anco de dad assim, n precisa ser dos, no ar reapl licada. Log apenas a opera REDO realmente n go, as es r necessrias sero aplicadas s duran a recup nte perao. Fin nalmente, d durante a fa UNDO, o log ser seguido de trs ase e para a frente, e as opera das tran es nsaes qu foram ati ue ivadas em tempo de queda q sero desfeitas na seqnc contrria As inform o cia a. maes nec cessrias par que o ARIES ra A execu seu proc ute cedimento d recuperao compre de eendem o lo a Tabela de Transa og, a es e a Ta abela de Pg ginas Lixo. Alm diss usado o checkpo . so, oint. Essas d duas tabela so as mant tidas pelo gerenciador de transaes e gravad no log du das urante o che eckpoint. No AR RIES, cada r registro de log tem um nmero de seqnc de log (LSN) m cia assoc ciado, que increment tado repetid damente e in ndica o end dereo do re egistro de lo no og disco Cada LSN correspon a uma mudana es o. N nde specfica (a ao) feita p alguma tranpor sao Alm dis o. sso, cada p gina de da armaze ado enar o LSN do ltimo registro de log N o d corre espondente a uma mud dana naqu uela pgina Um registro de log escrito pa as a. ara segui intes aes atualiza s: o de uma pgina (write), efe ( etivao de uma transao (com mmit), interr rupo de uma transa ao (abor desfazim rt), mento de u uma atualiz zao (undo e finaliza do) ao de um transao (end). A necessidade de incluir as primeira trs ma o n as aes no log tem sido disc m cutida, mas as duas ltimas preci isam de alg guma explic cao. Quan uma atu ndo ualizao fo desfeita, um registr de compe or ro ensao ser escrito no log. r o Quan ndo uma tr ransao fo encerrad seja po efetiva ou por interrupo um or da, or o o, regis de trm stro mino ser esc crito no log. Campos comuns em todos os tipos de log incluem (1) o LS anterior para m s l m: SN r aquela transao (2) o ID d transao e (3) o tip de regist de log. O LSN ante o, da o po tro erior impo ortante porq ele rela que aciona os re egistros de log (na seq l qncia cont trria) para cada a trans sao. Para uma ao d atualiza (write), campos ad de o dicionais no registro de log o d inclu uem: (4) o ID da pgina para a pg a gina que inc o item, (5) o comp clui primento do item o atual lizado, (6) s deslocam seu mento a pa artir do inci da pgina, (7) a ima io agem anteri do ior item e (8) sua im magem post terior.
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a18

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Alm d log, dua tabelas s necessr para um recupera do as o rias ma ao eficien a nte: Tabe de Tran ela nsaes e a Tabela de Pginas Li ixo, que so mantidas p gerenc o pelo ciador de tr ransaes. Q Quando oco orrer uma qu ueda, essas tabelas ser reconstr ro rudas na fa de ase anli da recu ise uperao. A Tabela d Transa de es contm uma ent m trada para cada trans sao ativa com infor a, rmaes co omo o ID da transao o status d transao e o d o, da LSN do registro de log mai recente para a transa N o is ao. A Tab de Pginas Lixo co bela ontm uma entrada pa cada p ara gina lixo n buffer, que inclui o ID da p no pgina e o LSN corre espondente atualiza mais anti para aqu pgina. o iga uela . O chec ckpoint em ARIES co m onsiste do seguinte: (1) escrever um registro de r begin n_checkpoin no log, (2) escrever um regi nt istro de end d_checkpoi no log e (3) int escre ever o LSN do registro de begin_checkpoint em um arq o quivo especi Esse arq ial. quivo espec cial aces ssado duran a recup nte perao pa localiza a ltima informa de ara ar a o check kpoint. Com o registro de end_ch m o heckpoint, o contedo da Tabela de Transa es e da T Tabela de P ginas Lixo ser adicionado ao fim do log. A fim de r o f reduzir o cu usto usado o fuzzy checkpoin (ponto d controle indistinto), para que o SGBD possa nt de , p conti inuar a exe ecutar trans saes dura ante a conf feco do c checkpoint. Alm diss os so, conte edos do ca ache do SG GBD no foram expelid para o disco duran o checkp dos nte point, uma vez que a Tabela d Transa e a Ta de es abela de Pginas Lixo que sero adici ionadas ao log no disc contm as inform co m maes nece essrias par a recuper ra rao. Obse erve que, s ocorrer u se uma queda durante a confeco do checkp a point, o arq quivo espec ir se re cial eferir ao che eckpoint an nterior, que ser usado n recupera s na ao. Aps um queda, o gerenciad de recup ma dor perao AR RIES obter o controle. As infor rmaes do ltimo ch o heckpoint s sero acess sadas prime eiro, por m meio do arq quivo espec cial. A fase de anlise inicia o registro beg e e gin_checkpo e avan para o fi do oint a im log. Quando o registro en nd_checkpo oint for enc contrado, a Tabela de Transaes e a Tabe de Pgin Lixo ser acessad (lembre- de que essas tabela foram escritas ela nas ro das -se as no lo durante o checkpo og oint). Duran a anlise, o registro de log que est sendo nte s estud dado poder causar mo odificaes nessas dua tabelas. P exemplo se um reg as Por o, gistro de t rmino do lo for enco og ontrado para uma transa a ao T da T Tabela de T Transaes, ento a en ntrada para T ser rem movida des tabela. Se algum outro tipo de registr for ssa ro encontrado no l para um transa T', ento uma entra para T' ser inserid na log ma o o ada da Tabe de Tran ela nsaes, se j no e e estiver pres sente, e o ltimo ca ampo LSN ser modi ificado. Se o registro d log corre de esponder a uma mudan na pgin P, ento seria u na na feita uma entrad para a p da gina P (se ainda no estiver pres sente na tab bela), e o campo LSN associado seria mod N o dificado. Q Quando a fase de an f nlise estive complet as er ta, infor rmaes nec cessrias pa REDO e UNDO tero sido com ara mpiladas nas tabelas. s Segue a fase REDO Para red O. duzir o trab balho desne ecessrio, o ARIES co omea refaz zendo a part do ponto do log ond ele sabe (com toda a certeza) q as mudanas tir o de que anter riores para a pginas l as lixo j foram aplicadas ao banco de dados e disco. El pom s em le
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a19

GovernoFederal Ministrioda M aEducao FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA InstitutoF Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

der determinar isso encon r ntrando o m menor LSN, M, de toda as pgina lixo da Tabela as as T de Pginas Lixo o que ind o, dicar a posio de log onde o A ARIES deve comear a fase e RED Quaisqu mudan relativas a LSN < M, para tran DO. uer as s M nsaes de REDO, j foram f propagadas para o disco, ou j foram sobrescr a m ritas no buf ffer; de ou utro modo, essas pgin lixo, co esse tipo de LSN, e nas om o estariam no buffer (e n Tabela d Pginas Lixo). o na de L Assim o REDO inicia no r m, O registro de log com LS = M, ex SN xaminando a partir da at o fim d log. Par cada mudana regis do ra strada no lo o algori og, itmo REDO verificar se a O muda ana dever ou no ser reaplicada Por exem r a. mplo, se uma mudana r a registrada no log n perte encer pgina P que n est na Tabela de Pginas Lixo, ento e no a essa mudan j na estar no disco e no prec r cisar ser re eaplicada. Ou, se uma mudana r O registrada no log n (diga amos, com L LSN = N) p pertencer p pgina P, e a Tabela de Pginas Li contiver uma e ixo r entra para P c ada com LSN m maior que N ento a mudana j e N, m estar presen Se nenhuma nte. dessa duas con as ndies exis a pgin P ser lid do disco e o LSN ar stir, na da rmazenado nessa pgin LSN(P), ser comp na, parado com N. Se N < LSN(P), en nto a muda ana foi apl licada e a pgina no n necessitar s regravad no disco. ser da Uma vez terminad a fase de REDO, o banco de d da e dados estar exatamen no nte estad em que e estava q do ele quando a qu ueda ocorreu O conjun das tran u. nto nsaes ativ vas cham mado undo_ _set foi identificad na Tabe de Tran i do ela nsaes du urante a fas de se anli ise. Assim, a fase UN NDO conti inua examin nando o lo de trs para a fre og ente e desfa azendo as aes apropr riadas. Um registro de log de com mpensao ser gravado para o cada uma das a es desfeit O UND ler os registros ant tas. DO r teriores do log at que cada e ao do conjunt de transa to es no und do_set tenha sido desfe a eita. Ao fina o proces de al, sso recup perao esta encerrad e o proce ar do essamento normal pode ser reini n er iciado. Consid dere o exem mplo de recu uperao mostrado na Figura. H trs transa m aes: T1, T2 e T3. T1 at tualiza a pgina C, T2 a atualiza as pginas B e C e T3 atua p aliza a pgi A. ina A Fi igura mostr os conte ra edos parcia do log e mostra o contedo da Tabe de ais os os ela Tran nsaes e da Tabela de Pginas L a e Lixo. Agora suponha que ocorra u uma queda nesse ponto o.
LSN N
LTIMOJ. .SN INFOR RMAO I DE ETRAN TIPO ID D_PAGINA OUTRA

1 2 3 4 5 6

0 0 1 inc checkpoi cio int fim checkpoint m 0

T1 T2 T1

update u update u commit c

C B

T3

update u

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a20

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII 7 8 2 7 TABELA DE TRAN NSAES LIXO O ID TRANS SAO L LTIMO LSN LSN N T1 T2 3 2 commit em progr resso C B TABELA DE PGINAS T E 1 2 STATUS S ID D_PGINA A T2 T2 update u commit c TABELA DE PGINAS T E C ...

TABELA DE TRAN NSAES LIXO O ID .TRANS SAO L LTIMO LSN LSN N T1 T2 T3 3 8 6 commit commit em progr resso STATUS S

ID D_PGINA A

C B A

1 2 6

Um exemplo de recupera em ARI e o IES, (a) O log no pont de queda do sistema, (b) to a As T Tabelas de T Transaes e de Pgina Lixo no instante do checkpoint (c) As Ta as t. abelas de Tr ransaes e de Pginas Lixo depoi da fase de anlise. s is e

Uma vez que um ch z heckpoint te enha ocorrid o endere do regis associado ao do, eo stro begin n_checkpoin ser recu nt uperado e sua local lizao 4. A fase de anlise inic cia-se na lo ocalizao 4 at alcan o fim. O registro end_checkpo dever conter a Tabela ar e oint T de T Transaes e a Tabela de Pgina Lixo, na Figura b acima, e a fase de an a as a nlise recon nstruir, ma adiante, essas tabela Quando a fase de an ais as. nlise encon ntrar o regis 6 stro de lo uma nov entrada p og, va para a transa ao T2 ser feita na T Tabela de Tr ransaes, e uma nova entrada para a pgin A ser feita na Ta a na abela de P ginas Lixo Depois que o o. q regis 8 do log for analis stro g sado, o statu da transa us ao T2 ser mudado p para efetivad na do Tabe de Trans ela saes. A Fi igura c mos as duas tabelas depois da fase de anlise. stra Para a fase REDO o menor LSN na Ta O, abela de P ginas Lixo 1. Portan o nto, RED iniciar n registro 1 do log e c DO no continuar com o REDO de atualiz c O zaes. Os LSNs L
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a21

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

f1, 2, 6, 7) corre espondentes s atualiza s aes para as pginas C B, AeC, r a C, respectivam mente, no s menore que os LSNs daquel pginas (como mostrado na T so es las Tabela de Pgina P Lixo). Assim, aq quelas pgi inas de dado sero lid novamen e as atua os das nte alizaes do log, o reapl licadas (ass sumindo que os LSNs reais armaz zenados naq quelas pgi inas de dad so do meno ores que a entrada d log corr de respondente Nesse p e). ponto, a fa REDO ser fase encer rrada e ter incio a fas UNDO. D Tabela de Transa (Figura 19.6c), o UNDO se Da d es U ser aplicado ap penas na tra ansao T3 a ativa. A fas UNDO se inicia na entrada 6 do log se d (a lt tima atualiz zao de T3) e segue pa trs no log. A seqncia de atu ara l ualizaes para a p trans sao T; (apenas o regis 6 do log neste exe stro g, emplo) ser seguida e d desfeita.

6. RECUPERAO EM SISTEM DE BAN MAS NCOS DE DA ADOS MLTIPLOS

At aqui assumimo implicitam i os mente que uma transa acessa um nico banco u o b de da ados. Em a alguns casos uma nic transao chamada transao multibanc de s, ca o, a o co dado pode exigir acesso a diversos bancos de dados. Esse bancos d dados po os, es de odem, ainda estar arm a, mazenados e diferente tipos de SGBDs; po exemplo alguns SG em es or o, GBDs pode ser rela em acionais, en nquanto ou utros so orientados a objetos, hierrquico ou o os SGB em rede Nesse caso, cada SG BDs e. GBD envolv vido na tran nsao mult tibanco de dados d pode ter sua pr e pria tcnic de recup ca perao, e o gerenciad de transao separa este dor a dos o outros SGB BDs. Essa s situao s similar ao sistema de g s gerenciamento de banc de co dado distribud os dos, no qua partes do banco de dados res al o e sidem em d diferentes lo ocais, conectados por u rede de comunicao. uma e Para m manter a ato omicidade d uma tran de nsao em u multiba um anco de dad dos, necessrio ter u mecani um ismo de rec cuperao em dois n veis. Um gerenciado de or recuperao global, ou co oordenador ser necessrio para manter as i r, informaes exigidas para a r s recuperao alm do gerencia o, os adores de recupera locais e das o infor rmaes ma antidas por eles (log, tabelas). O coordena r ador geralm mente segue um proto ocolo chama protocolo de efeti ado ivao em duas fases, cujas duas fases podem ser d m defin nidas assim: : Fase 1: Quand todos o bancos de dados participantes sinalizarem ao do os d s coord denador que sua parte na transa multiban foi conc o nco cluda, o co oordenador envia uma mensagem 'preparar para efetiv a fim de prepara cada par m var' ar rticipante para a efetiv vao da transao. Ca banco d dados pa ada de articipante q receber essa mensagem que r fora a grava de todo os registr de log, bem como as informa ar o os ros aes necess srias para a recupera local pa o disco e ento, en o ara e, nviar um si inal de 'pron para efe nto etivar'
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a22

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

ou 'O ao coor OK' rdenador. Se a grava forada no disco fal o n lhar, ou se a transao local no p puder ser ef fetivada por alguma ra r azo, o banc de dados participant envia um sinal co te m 'no pode efetiv ou 'no OK' ao c var' o coordenador Se o coo r. ordenador n receber uma no r respo osta de um dos banc de dado dentro de um cert intervalo de tempo ele m cos os d to o o, assum um 'n OK' como resposta. mir o Fase 2: Se todos os bancos de dados participantes respondere 'OK' e o voto s p s em do co oordenador tambm fo um 'OK', a transa ser bem r or , o m-sucedida, e o coorden nador envia um sinal 'e a efetivar' par a transao dos banc de dado participan ra cos os ntes. Como todos os ef feitos locais da transa e as info s o ormaes ne ecessrias para recuperao local foram f regis strados nos logs dos bancos de dados part ticipantes, a recuperao de falh has poss vel. Cada banco de dados pa e articipante completa a efetiva da transao o escre evendo uma entrada [e a efetivar] par a transao no log e se necess ra e, rio, atualiz zando perm manentemen o banco de dados. De outro modo, se u ou mais dos banco de nte um s os dado participan os ntes, ou se o coorden e nador optar por um 'n OK' co r no omo respos a sta, trans sao falhar e o coorde r enador envi uma me iar ensagem pa 'reverter'' ou DESFA ara AZER o efe local da transao para cada b eito a banco de da ados partici ipante. Esse procedime e ento feito desfazendo as opera de transao por me do log. o es eio O efeito em rede do protocolo d efetiva em duas fases consiste em que todos o de o os ba ancos de da ados particip pantes efetiv a transao, ou ne vem enhum deles o faa. No caso s o de al lgum dos pa articipantes ou o co s oordenador falhar, sempre po ossvel recu uperar de um estado on a transa m nde ao possa ser efetivad ou revert da tida. Uma f falha durant ou te, anter rior, a Fase 1 geralmen requer q as trans nte que saes sejam revertida enquanto uma m as, o falha durante a F a Fase 2 sign nifica que um transa bem-suce ma o edida pode ser recuper rada e efetiv vada.

7. BA ACKUP CATA ASTRFICA AS

DE

BANCO

DE

DADO OS

REC CUPERAO O

EM

FALHAS A

At aqui todas as tcnicas vist se aplica a falhas no catastr i, tas am s rficas. Foi feita i uma suposio fundamental: que o lo do siste og ema seja m mantido no d disco e no seja o perdi ido como resultado da falha. Analogame ente, o cat tlogo shad dow deve estar arma azenado em disco para permitir a recuperao se a pagin m o nao shado estiver sendo ow s usada. As tcni icas de recu uperao q temos discutido us que d sam as entr radas no lo do og sistem ou o cat ma tlogo shad para se recuperar de falhas, tra dow d azendo o ba anco de dad de dos volta a um estad consisten a do nte.
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a23

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

O gere enciador de recupera de um SGBD deve tambm estar equipado o S er m para manipular falhas cata astrficas, t tais como quebras de disco. A p q principal t cnica usada nesses casos a de b backup do b banco de da ados. Todo o banco de dados e se log e eu so p periodicame ente copiad para um meio de armazenam dos m mento barato como as fitas o, s magn nticas. No caso de um falha ca ma atastrfica do sistema, a ltima c , cpia de ba ackup pode ser recar er rregada, da f para o d fita disco, e o sistema poder ser reinic ciado. Para ev vitar a perda dos efeitos das transaes execut a s tadas desde o ltimo back comum salvar o l do sistem em inter kup, m log ma rvalos meno que o u ores usado no ba ackup total do banco d dados, co de opiando-o pe eriodicamen para a fi magntic O log do nte ita ca. o sistem , em ge ma eral, substan ncialmente menor que o prprio banco de dad e pode, dos porta anto, ser cop piado mais freqentem mente. Com isso, os usu i urios no pe erdem todas as s trans saes que e executaram desde o ltimo backup do banco d dados. Todas as p de trans saes efetiv vadas regist tradas na po oro do log de sistema que tenham sido copiadas g a m para uma fita po odero ter se efeitos r eus refeitos no banco de da b ados. Um no log ser ovo inicia depois de cada bac ado ckup do ban de dados. Portanto, para se rec nco cuperar de uma u perda de disco, o banco de dados dever ser, prim a meiro, recriad a partir d ltimo do do back em fita. A seguir, to kup odas as tran nsaes efeti ivadas, cuja operaes tenham sid as s do regis stradas nas c cpias back do log d sistema, sero recons kup do s strudas

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a24

Você também pode gostar