Você está na página 1de 6

Sistema de Recuperao

CinciadaComputaoUFBA BancodeDadosProf.Leopoldo 29/Jun/2005 Equipe: EdsonLucas GisliaCruz MateusOliveira TssiaCames

1.Introduo
Informaespodemserperdidasdeumsistemacomputacionaldevidoocorrnciadefalhas.Estas variam de falta de energia erros de software. Um sistema de banco de dados deve garantir propriedades comoatomicidadeedurabilidadedesuastransaesmesmoquefalhasocorram. Um mecanisnoderecuperoquerestaureobancodedadosparaumestadoconsistenteexistenteantesda falha,portanto,deextremaimportncia. Osalgoritmosderecuperaoembancodedadossoresponsveisporasseguraraconsistnciado banco de dados e a atomicidade das transaes. Para isto eles devem efetuar aes durante o processamento normal de uma transao garantindo que haja informao suficiente pra permitir a recuperao,eaesapsafalha,queefetivamenterecuperamocontedodobancodedadosparaum estadoconsistente,garantindoaatomicidadedatransaoeadurabilidade.

2.Falhas em Bancos de Dados


Podeseclassificarasfalhasdaseguinteforma:

Falhadetransao:Estafalhapodesercausadapordoistiposdeerro,errolgicoouerrodesitema. Oerrolgicoocorrequandoumacondiointernaimpedeaexecuonormaldatransao,como uma entrada inadequada ou um dado no encontrado. Quando o sistema entra num estado inadequado,impedindoaexecuonormaldeumatransao,comonocasodeumdeadlock,dizse queocorreuumerrodesistema. Queda do sistema: Esta falha causa a perda do contedo do armazenamento voltil, parando o processamentodatransao,semafetarocontedodoarmazenamentonovoltil.Causascomuns destafalhasomalfuncinamentodehardwareoubugnosoftwaredebancodedados. Falhadedisco:Estafalhalevaperdadocontedododisco,podesercausadapelaquebrado cabeote.

3.Estrutura de Armazenamento
Podese distinguir os tipos de armazenamento a partir de sua velocidade relativa, capacidade e resistnciafalha.

Armazenamento Voltil: Memria principal ou memria cache. O acesso este tipo de armazenamentoextremamenterpido.Informaesresisdentesnestearmazenamentonoresistem quedadosistema. Armazenamento NoVoltil: Disco, para armazenamento online, e fitas magnticas, para armazenamentoemarquivo. mais lentoqueoarmazenamentovoltil, pois soequipamentos eletromecncios. ArmazenamentoEstvel:Praticamente,ainformaonuncaperdida.Dseatravsdareplicao da informo em vrios meios de armazeamento novoltil e controlando a atualizao da informaes.

Ossistemasdebancodedadosresidememarmazenamentonovoltileparticionadoemuniddesde armazenamentodecompriemtnofixochamadasdeblocos,unidadesdetransfernciadedadoseque podemcontervriositensdedados.Paraamaioriadasaplicaesnenhumitemdedadoabrangedois oumaisblocos. Pararealizarastransaesnecessriotrazemblocosdeinformaododiscoparaamemriaedepois levlasparaodisco.Osblocosresidentesnodiscosochamadosblocosfsicosenquantoqueos blocossituadosnamemriasochamadosblocosdebuffer.Osmovimentosdeblocossedoatravs deoperaesdeinput,quetransfereumblocofsicoparaamemria,eoutput,quetransfereumbloco debufferparaodiscosubstituindooblocodediscoapropriado. Humareadetrabalhoparacadatransao,existenteenquantoatransioexiste,ondesomantidas cpiasdosdadosacessadoseatualizados.Umatransaointeragecomosistemadebancodedados transferindodadosentresuareadetrabalhoeobufferdesistema.Paraistosonecessriasduas operaes:Read(X),queatribuiovalordoitemdedadoXparaumavarivellocalx,eWrite(X),que atribuiovalordavarivellocalxparaoitemdedadoXnoblocodebuffer.Nasduasoperaesseo bloconoqualresideXnoestejanamemriaprincipalnecessriofazerumaoperaodeinputdeste bloco.

4.Recuperao e Atomicidade
Aoocorrerumafalhaduranteumatransao,soluesdotiporeexecutarouignorarpoderamlevaro bancoaumestadoincosistente.Oproblemaestemmodificarobancodedadossemqueatransao ser de fato efetivada. Para evitar incosistncias necessrio que todas ou nenhuma alterao relacionadasaumatransaosejamfeitasnobanco.Paramanteraatomicidadedevesemandartodas asalteraesparaumarmazenamentoestvel,semmodificarobancodedados.Istopermitir que, apesardefalhas,manterumestadoconsistentedosdados.Abaixoestodescritasduastcnicasde realizaressagravao.

5.Recuperao utilizando log


Recuperaobaseadaemlogtcnicamaisusadaparagravarmodificaesemumbancodedados.O logoujournaldocumentaasatividadesemumbancodedados.Emespecial,ologdeatualizaes documentatodasasalteraesderegistos.Osregistrosdologsogravadosantesdamodificaono banco,deformaquecasoocorraumafalhaqueinterrompaumatransao,obancodedadospossa retornaraumestadoconsistente.Existemduaspoliticasdegravaoquandoseutilizaolog. Nolog,halgumasoperaesprimitivasquepodemserregistadas:

startMarcaoiniciodeumatransao,juntocomoidentificadordesta. updateMarcaumaalteraoemregistro,mantendooidentificadordatransao,doregistro evaloresatuaise/ouvaloresanteriores. commitMarcaofimdeumatransao abortMarcaoabortodeumatransao,sendoexecutadoorollback,restaurandooestado anterior.

ModificaoAdiada
Nestapoltica,asmodificaessoadiadasatquetodaatransaoestejatodagravadanolog.Logo depois, modificaseosregistros dedados.Seocorrer umafalhaantes detodosos registros serem gravados,todososdadosnecessriospararefazeratransaoestonolog.Casoatransaoesteja parcialmentenolog,elaignoradanarecuperaodobanco.

Modificaoimediata
Nocasodapolticademodificaoimediata,apscadaoperaodeupdatedatransao,modificaseo registrocorrespondentenobancodedados.Seocorrerumafalhaantesdofimdatransao,e consequente

Checkpoints
Como refazer todas as operaes do log custoso e o tamanho do log tende a crescer rpido, a recuperaodedadosutilizandoologpodesermuitodemorada.Muitastransaesjforamefetivadas emdisco,nosendonecessriorefazlas. Umasoluoparaesseproblemaacriaodecheckpoints,marcasnologondetodasasoperaesde escritaanterioresaocheckpointjforamefetivadasemdisco.Logosprecisorefazerastransaes concludasqueforamfeitasdepoisdacriaodocheckpoint. Duranteacriaodocheckpoint,todososregistrosdelogresidentesemmemriasogravadosem armazenamentoestvel,seguidodesblocosdebuffermodificados.Somenteapsisto,armazenadoo registrodelogquemarcaaconclusodocheckpoint.

6.Paginao Shadow
AtcnicaderecuperaoporPaginaoShadowumamelhoriadatcnicadecpiashadow,bastante utilizadaporeditoresdetexto.NacpiaShadow,asatualizaessofeitasnumnovoarquivo,euma cpiaoriginal(shadow)mantidaataefetivaodasatualizaes(gravaonodisco).Nocasode falhas,recuperaseacpiashadow,quedeveestarintacta. RecuperaoporPaginaoShadownormalmenterealizamenosacessosemdiscodoquemtodos baseadosemlog.Emcompensao,humagrandedificuldadedeadaptloasistemascomtransaes concorrentes. Considerequeobancodedadosdivididoemblocosdetamanhofixo,chamadosde"pginas".Seo bancofordivididoem"n"pginas,devesemanterumatabeladepginascom"n"entradas,contendo apontadoresparacadapginanodisco,provendoassimacessodiretospginas.Aordemlgicadas pginasnobanconocorrespondemordemfsicadearmazenamento. Nestemtodo,osistemamantmde2tabelas:tabeladepginasatuaisedepginasshadow.Atabela depginasshadownoalteradadurantetodaatransaoeseuendereoarmazenadonumponteiro fixo, para posterior recuperao no cas de falhas. A tabela de pginas atuais alterada quando a transaoprocessaumaoperaowrite. Exemplodaexecuodaoperaowrite(X),ondeXresidenapginai:seaisimapginanoestna memriaprincipal,executaseaoperaoinput(x).Seestaforaprimeiraescritanapginaiparaesta transao:(1)encontraseumapginalivre(2)removeadalistadepginaslivres(3)Aisimapgina databeladepginasatuaisdeveapontarparaanovapginaalocada.DesignaseonovovalorparaXna pginadebuffer,namemriaprincipal. Paraefetivarumatransao,devese: 1.Garantirquetodasaspginasalteradasnobuffersejamgravadasemdisco; 2.Enviaratabeladepginasatuaisparaodisco(nosedevesobrescreveratabeladepginas shadow,vistoqueelapodeserusadapararecuperao,nocasodefalhas); 3.Alteraroponteiroqueendereaatabeladepginasshadowparaoendereodatabelade pginasatuais.Nestemomento,atabeladepginasatuaissetornaatabeladepginasshadow. Percebaque,sehouverumaquedanosistemaantesdopasso3,oestadodobancodeveserrevertido paraantesdatransao.Seaquedaocorrerdepoisdopasso3,osefeitosdatransaosopreservados. Portanto,aatomicidadegarantidaemambososcasos. Como vantagem do sistema de paginao Shadow, podemos citar a rapidez da recuperao, que acontecedeformaquaseautomtica,atravsdasubstituiodatabeladepginasshadow. Emcompensao,temosdiversasdisvantagens,comoveremosaseguir.Humoverheaddeefetivao detransaesdevidonecessidadedeenviodedadosreais,enviodatabeladepginasatuaiseenvio do endereo da tabela de pginas atuais. Alm disso, as pginas de dados relacionados sofrem alteraesdelocalizao,causandoumavisvelfragmentaodosdadosnodisco.Periodicamente necessriorealizarumprocedimentode"coletadelixo",devidoaexistnciadepginasinacessveis, lixodecorrentedequedas,etc.Outragrandedesvantagemadifciladaptaodestemtodoasistemas comtransaesconcorrentes.Mesmoutilizandopaginaoshadow,normalmentenecessrioousode registrodelogsparacontroledetransaesconcorrentes.

7.Recuperao com transaes concorrentes


Vamosanalisarosesquemasbaseadosemlogpararecuperaocomtransaesoncorrentes.Devido simplicidade de se ampliar os mtodos originais para considerar a concorrncia, so estes os comumenteutilizados. Devese considerar que o sistema tem um nico buffer e um nico log. Os blocos de buffer so compartilhadosportodasastransaes,eumblocopodeconteratualizaesdediversastransaes.O controledeconcorrnciautilizadooseguinte:SeumatransaoTatualizouumdadoQ,nenhuma outratransaopodeatualizarQ,atqueTtenhasidoefetivadaourevertida. Parareverterumatransao,deveinutilizartodasasalteraesfeitaspelatransao.Oregistrodelogs deve ser examinado do final para o comeo, para garantir a corretude dos dados. Por exemplo, consideremososlogs:<T,X,10,20>e<T,X,20,30>,ondeatransaoTalterouovalordeXde10para 20 e em seguida alterou novamente de 20 para 30. Se as operaes forem desfeitas em ordem cronolgica,nofinaldareverso,ovalordeXserajustadopara20,oqueestincorreto.Seocontrole detransaesforobedecido,areversodeumatransaonoapagarosefeitosdequalqueroutra transao. Oscheckpointssousadosnovamentenoregistrodelogsparareduziraquantidadedelogsquedevem ser analisados. Porm, no caso de transaes concorrentes, temos que considerar que diversas transaespodemestarativasnomomentocheckpoint.Deveseentomarcaroslogscom<Checkpoint L>,ondeLalistadetransaesativasnomomentodocheckpoint. Quandoumsistemaserecuperadeumaqueda,eledeveconstruirduaslistas:"inutilizar"e"refazer", contendoastransaesquedevemserinutilizadaserefeitas,respectivamente.Aconstruodaslistas feitadaseguinteforma:percorreseoslogsdetrsprafrenteatencontrar<checkpointL>;paracada <Tcommit>(efetivaodatransaoT),adicionarTnalistarefazer;paracada<Tstart>(incioda transaoT)emqueTnopertencealistarefazer,deveseadicionarTalistainutilizar. Tendoaslistas"inutilizar"e"refazer"emmos,arecuperaodeveprosseguirdaseguintemaneira:(1) percorreseologdetrsprafrente,desfazendotodatransaodalistainutilizar;(2)apartirdoltimo <checkpointL>,deveserefazertodatransaopertencentea"refazer".importanteressaltarqueo passo1devesersempreexecutadodetrsprafrente,enquantoqueopasso2deveserexecutadoem ordemcronolgica.Destaforma,garantimosacorretudedosdados.

8.Gerenciamento de Buffer e tcnicas avanadas


QuandosedesejaimplementarumSistemadebancodedados,deveselevaremcontaalgunsdetalhes sutisafimdeproveraosistemaumaeficinciarazovel.Umdosdetalhesquesedevelevaremconta o uso de um buffer na memria principal que tem o objetivo de armazenar temporariamente um conjuntodeLogsantesdedirecionlosparaasadadememriaestvel. Defatoodirecionamentosaidadememriaestvelrealizadaemblocos.ComocadaLogpodeser muito menordoqueumbloco,humoverheadmuitograndequandoesteenviofeitodeforma individual. Da mesma forma, dados arespeito dobanco so carregados na memriaprincipal em blocos.Quandonopossvelcarregardoisblocossimultaneamentenamemriaprincipal,devese definirumapolticapararetiraroblocoresidentenamemriaesubstituirpeloquesedesejacarregarde formaaconservaraintegridadedobanco.

Outroaspctorelativoabufferizaodizrespeitoaosistemaoperacional.Umsistemadebancode dadospodereservarumespaodememria,ouentoutilizaramemriavirtualprovidapeloSO. Ambasastcnicastemvantagensedesvantagens.Existemalgumastcnicasavanadasquetambm possibilitamumaumentodaeficinciadosbancos.UmadelasoLogcomundolgico,quepermite um desbloqueio de recursos que esto sendo utilizados de forma prematura. Outra o Fuzzy CheckpointquepermitequeatualizaessejamfeitasduranteoprocessodeCheckpoint.

Referncias: Silberschatzetal.,SistemasdeBancodeDadospg.511543 http://www.lsd.ic.unicamp.br/projetos/elane/introPHPMySQL/chapterfour.html[27/06/2005] http://www.sqlmagazine.com.br/apostilas.asp[27/06/2005] http://dev.mysql.com/doc/mysql/pt/replication.html[27/06/2005] Wikipedia(www.wikipedia.org)[27/06/2005]