Sunteți pe pagina 1din 5

Interbase/Firebird,razonesdecorrupcin

porAlexeyKovyazinyDmitryKuzmenko,20052007 Erroresrelacionadosconelhardware Apagadoanormal Cierresanormalessonlaprincipalcausadelacorrupcin.Puedensercausadasporlaprdidadeenerga enunequiposinUPScuandountopomutantegrandesecomelaofertadesuciudadcabledealimentacin (ocualquierotraexplicacindesucompaadeenergapuededar),olaseoradelalimpiezatiradela "equivocada"decable,mientrasquelalimpiezadesuoficina.Aveceslagentesimplementeapaguesu ordenadorsinpreocuparseporloquelamquinapodrasercontratadoinCualquieradeestascondiciones puededarlugaralacorrupcin. Sinembargo,esprobablequehayaobservadoquenotodosloscierreanormalconducealacorrupcin.El diseoinicialdeInterBasefue,conalgunasrestricciones,perdonanalosmediostaninestables.Como ustedessaben,lasversionesanterioresdeInterBaseseutilizaronenelsistemadecontroldeincendiosde laplataformadeartilleraMLRPS.CadadescargadeMPLRSfueacompaadoporunpulso electromagnticofuerte,causandolaJuntasobrecomputertoreiniciartodoeltiempo.Fueunafuerte exigenciadequeelservidordebasededatosintegradaquepuedasvolveracargarensegundosser robustofrentealasposibilidadesdecorrupcincausadaporparadadealimentacin.InterBaseinstalado doscondiciones:queempezarrpidamenteysuarquitecturamultigeneracindehechocapazdesaltarse lascomprometidas,oinclusoversionesdaadasdelosregistros,yconservarsucapacidaddeleerunbuen registro. Peropasaeltiempo.Enlasltimasversionesavanzadasdealmacenamientoencachseimplementy "civil"versionesdeInterBasesehizomsvulnerablesdecadas.Elmsconocidoproblemaest relacionadoconlaescrituraforzadaenWindows.Laescrituraforzadaesunabandera,situadoenelarchivo debasededatos,quedeterminaelcomportamientodecachdeWindowsparaestearchivo.Nosotros recomendamosestablecerlaescrituraforzadaenWindowsenON,yaqueWindowsesmuy"perezoso", sobrelaliberacindesucachypodraserlacelebracindedasdetrabajonovolcados. HDDlaluzlacorrupcin Lacorrupcindeluzdeundiscodurodaadoquesucedecuandoslounospocosgrupos.Normalmente,el sistemaoperativoadviertequeelarchivoesilegible.Elefectodeestetipodecorrupcinesqueelarchivo debasededatostienevariaslagunasdentrodeellaqueestnllenosdeceroso,enocasiones,la informacindelabasura.Lasdiferenciasromperlaestructurainternadelabasededatos,quepuededar lugaraunaampliagamadeposibleserrores. HeavyHDDcorruption4 Aveces,eldiscoduropuederomperenunapilacompletamenteilegibledemetalyplstico.Enestecaso tienedosopciones,laprimeradelascualesestratardereparareldiscodaadoconunautilitiyespeciales comoRStudio(http://www.datarecoverysoftware.net/) Siesonoayuda,ustedpuedecontarconlaayudadeundiscodurodeservicioderecuperacin.Estostipos realmentepuedeobtenerlosdatosdelaCuartaDimensin.Dosproblemasseencuentranaqu:enprimer lugar,sushonorariossonbastantegrandes(apartirdeUSD$1000),loquesignificaquetienenquesopesar loscostosqueenfrentasuestimacindelvalordelaprdidadedatosantesdepedirelservicio.Ensegundo lugar,recuperarlosdatoscasisiempresonmixtosporesto,quierodecirquelascadenasdelosgruposse organizandemanerasquedifierendelabasededatosoriginal. DeCD/DVDdelacorrupcin SialmacenalasbasesdedatosenDVDoCDconfinesdearchivoocomounabasededatosdeslo lecturadiccionarioquesepuedenromper.Porlogenerallademostracindequelacorrupcinesque ustednopuedeleerelarchivodebasededatosdesdeelDVD. LaprimeracosaahaceresextraerelarchivodaadodesdeelDVDconalgunaherramientacomoFixDVD! Lamentablemente,enel99%deloscasos,unabasededatosdearchivoextradodeunDVDseencuentra enmalestado:elarchivoextradoesdeltamaocorrecto,peroestllenaconunamezcladebasesde

datosypginasdebasura,delosdatos. LamaneramsasequiblealextraerlosarchivosdebasededatosdeDVDescrearunaimagendetodoel DVD(4,7GB)ybuscarlaspginasdebasededatosenestembito. LacorrupcinFlashDrive LatecnologaFlashDriveesmsbienreciente,conalgunaslimitacionesenlacuentadelectura/escritura deciclos.Lasprimerasversionesfueronincapacesdemantenernisiquieraunmillndeciclos,peroel problemaparecehaberdesaparecidocomolatecnologahaevolucionado.Sinembargo,nopuedo recomendarunidadesdememoriaflashparaelusodiariocomoelalmacenamientodedatosprincipalde unabasededatosdeFirebirdoInterBase. Eltrabajodeunservidordebasededatosimplicaleermuchos/operacionesdeescrituraenelmodode accesoaleatorio.Sehanmanejadovariasbasesdedatoscorruptosquevivenenunidadesflashcuyos usuariosnofueronlosuficientementeprudenteparacopiadeseguridad.Corrupcionessonsimilaresalaluz lascorrupcionesHDDvariaspiezasdelabasededatosdearchivoperdido. CorrupcindeRAM Entretodaslascorrupcionesdehardware,corrupcindeRAMeslaverdaderapesadilla.Engeneral,la suerteesquelacorrupcinsehaceevidenteconlaRAMdeunBSOD(BlueScreenOfDeath)odeotros eventoscrticosquepuedeserfcilmentedetectadoporeladministradordelsistema.Peroavecesla corrupcinRAMestanlevequesloherramientasespecialespuededetectarloymuestrasusdientesslo durantesuusointensivo. Cuandoseproducencorrupcionesotrohardware,esaniveldepginabasededatos.Pginasenterasse pierden,mientrasqueotraspginasestnintactos.ElproblemacuandosedaaRAMesquecualquierbit enelarchivodebasededatospuedeserintermitente,cambiade0a1,oviceversa.Estetipodecorrupcin essloreconocibledespusdeloshechos:semuestraslocuandoalgunapginadebasededatoslo suficientementedaadoparaprovocarunerror. As,lacorrupcindeRAMseocultahastaelniveldedaosevuelvecrtica.Unavezviunpardebasesde datosdesdeunnicoservidorconlaRAMdaada.Elclienteenvaunaporuna,concorrupcionesvarias, antesdequeyolepedquemeenviaraelinterbase.log.All,vivarioserroresdelongitudincorrectade registro,tipodepginamaleinclusovarioserroresesotrico.PusimosapruebalamemoriaRAMconel memtestherramientayencontrproblemasdeRAM. UnproblemaanmsexpuestosalacorrupcindeRAMesquelosintentosparavalidarlabasededatos congfixenelequipoconlaRAMdefectuosapuedeproducirresultadosdiferentescadavezqueloejecute. Peoran,lalabordegfixMEND,quetratadecorregirerrores,puedeproducirlacorrupcinadicionaldela basededatos,yaquelasvisitasdecadapginadebasededatosy,enlaescriturade"recomendado"las pginas,puedeestablecerlosbitsmsequivocado. Lafaltadeespacioendiscoparalabasededatos Quedandosinespacioendiscoeselerrorfavoritodelosadministradoresdeperezosos.Lacorrupcin ocurrecuandoelservidorintentasolicitarmsdepginaparaampliarelarchivodebasededatosy descubrequenohayespaciodisponibleeneldiscooparticin. Lasituacinmspeligrosaseproducecuandolafaltadeespacioendiscosecombinaconunacachde grantamaoydelaescrituraforzadaapagado.Elsistemaoperativointentadescargarunagrancantidadde datoseneldiscoysimplementenofuncionasinohaysuficienteespacio.Enestecaso,labasededatos serincoherente,porquelaprdidadelamemoriacachsignificaquefueroninterrumpidostodoslos cambiosenlapginaylascadenasderegistro. Alintentarreparareldaocausadoporlafaltadeespacioendiscocongfixpuedeencontrarinteresante efectosecundario:elinterbase.logsellenarconunasecuenciadebucledepgina"doblementeasignada" errores.Gfixnuncaterminar,elinterbase.logpuedecrecermuygrandeyespacioendiscopuedeser agotado. Lafaltadeespacioendiscoparaarchivostemporales SinotieneespacioendiscoconfiguradoparaInterBaseoFirebirdautilizarparaalmacenarlosarchivos temporalesquecreaparalaclasificacinylasoperacionesdecombinacin,elmotorutilizaeldirectorio especificadoenlavariabledesistemaTEMP.Siunaconsultapesadatienemillonesdelneasaltipo,el tamaodelosarchivostemporalespuedesermuygrande.Silasconsultasconmuchostiposseestn ejecutando,puedeocuparmuchoespacioyelagotamientodeespaciolibreseconvierteenunaposibilidad. Porlogeneralestascondicionessemanipulancorrectamenteyclientequeconsultalanzadarecibeun

mensajedeerror. Locuriosoesque,enlasviejasversionesdeInterBaseyFirebird,eltextodelerrorera"Nohaypapelenla impresora",debidoaunaasignacinerrneadelmensajedeexcepcinalcdigodeerrordesistemade Windows. Peropuedesucederquelafaltadeespacioendiscoparaarchivostemporalesconducealaterminacin anormaldelservidorylacorrupcindebasesdedatos,especialmenteconunaversindeInterbase/ Firebird. Lafaltadeespacioendiscoparainterbase.logofirebird.log SiustednomiralacantidaddeespaciolibreenlaparticindondeestinstaladoelInterbaseoFirebird, puedeejecutarsinespacioallcuandoelinterbase.logofirebird.logarchivocrecemuygrande.Todoslos erroresentodaslasbasesdedatosenelservidorseescribenenelregistrodelmismoarchivodemodoque esprobablequeconelproblemasiustedtieneunmontndeerroresdered,talescomo: Mi_servidor(Server)ThuJan0215:14:572006 INET/inet_error:readerrno=10054 Ahora,ustedpodrasuponerqueestoserroressonmsbienrarasy,conaplicacionesdiseadas adecuadamente,nodeberaaparecernunca.Sibienescierto,hayunmontndecasosdondeelespacio librenoseagotanporelarchivoderegistrosoplado. Essencilloencontrarunejemplo.Imaginequetienelacorrupcinluzdeunndiceenunabasededatos msgrandeydecideejecutargfixparaarreglarlo.Loqueocurreaquesqueelmotormarcaelndiceest daadocomomal,liberatodassuspginasyregistraelmensaje"PginaXXXhurfanos".Conunndice bastantegrande,obtendrmilesdemensajesdeestetipoenelarchivoderegistroquefcilmentesepuede comertodoelespaciolibredisponibleyllevaralacorrupcinmuchomspesada. Corrupcionescausadospordescuidodemantenimiento Borradoaccidentalmentearchivosdebasededatos Avecesunarchivodebasededatospuedenserborradosaccidentalmente.Enversionesanterioresa Firebird1.0yInterBase7.0esposibleborrarunarchivodebasededatos,inclusosiestabaabierta,esdecir, enactivosdeE/Soperaciones.ElservidorabreelarchivodebasededatosconelfmShareDenyNone bandera(0x40),porloquecualquierprocesofuecapazdemodificaryborrar. Inclusoconlasnuevasversionesnohaygarantadequeunarchivodebasededatosnosesuprimen, mientrasqueelservidorestapagadoonohayconexionesactivas.Porlogeneral,ocurrecuandolabase dedatoshasidorespaldadaocopiadoaotrolugaryseconsidererrneamentequelabasededatos originalpuedesereliminado.Silacopiadeseguridadfalloelarchivodedestinoseprodujeronerrores durantelacopiadearchivos,tenemosunasituacindesuprimidoarchivodebasededatos. Lomsurgenteeinmediatoahaceresdejartodalaactividadeneldiscodondeestabasituadalabasede datos.Siesundiscodesistema,elequipohaciaabajoyvolveramontareldiscocomosecundariapara evitarcualquierescriturasalmismo. Despus,ustednecesitaencontraralgunosprogramasparaRecuperararchivos.ParaWindowsyLinuxhay muchosserviciospblicosycmoaguasparalarecuperacinyreparacindearchivos.Algunosdeellos seenumeranacontinuacin: http://www.stud.tuilmenau.de/~mojo/undelete.html http://recover.sourceforge.net/linux/ http://home.fnal.gov/~/Muzaffar/undelete/README.html Sinoseescribesehanhechoenlossectoresdearchivoborrado,ustedtieneunabuenaoportunidadpara recuperarelarchivoborrado,talvezinclusoindemneyviable.Generalmente,sinembargo,algunaspartes sehanperdidoyelesfuerzoderecuperacinadicionalesnecesario. Desaparecidos"losarchivosenLinux/Unix/HPUX/... EsbienconocidohechodequeLinuxutilizaelmecanismodeinodoparaapoyarlossistemasdearchivo diferentes.Unadelascaractersticasclavedeestemecanismoeselusodelacachparamanejar

descriptoresdeficherosignificaquelosdescriptoresdearchivosealmacenanenlamemoriayeldisco. AInterBaseyFirebirdenqueaportaunladoonerosaefecto.Sireemplazaunabasededatoscuandolos usuariosquesiguenconectadosyelservidorseguirtrabajandoconelarchivoviejo,queerrneamentese debesuprimirse.Elpeligroaquesque,cuandoseseparaelltimousuario,elservidorsecaeelarchivo parasiempreyel"nuevo"archivoenlospasosparareemplazarenesepunto.Nuncasesabeloqueha ocurridohastaqueseademasiadotardey,acontinuacin,esmsprobablequeseadescubiertoporlos usuariosfurioso:"Dndeestmitrabajodelasemanapasada?" Elperodomslargodelaprdidadedatosdebidoaladesaparicindetalesqueheobservadofuede 1,5aos.EraunabasededatosmultivolumenenLinuxyenunodelosvolmenesde4Gbseperdi completamente. Ustedpuededecirqueesunacircunstanciamuyrara,peropuedoparticipacindeunacajadecervezaen elhechodeque,ahora,almenosuncentenardeinstalacionesdeservidortienenesteproblema.Recibimos almenosunasolicituddereparacindebidoaesteproblemacadadosmeses! Errneasimplementacionesdeloslmites 36.6Gblmitedetamaodetabla DeTrabajoeninteresanteincidentedesoportetcnicoconunodenuestrosclientes,hemosencontradolo queelnmeromximodefilasrealdifieredellmitedeclarado. Enelconjuntodedocumentacin[GuadeoperacionesparaInterBase6,pgina27,InterBase Especificacin]podemosleerlosiguiente: "Elnmeromximodefilasycolumnasportabla:Porsudiseo,2^32filas,yaquelasfilasseenumeran conunenterode32bitssinsignoportabla." Porsupuesto,lasfilasenumeradasporenterode32bits.Lamentablemente,nohayningunatabla,peroen realidadnuncapuedealcanzarlos2milmillonesderegistroslmiteinclusolatablaconunaslacolumna. Larazndeestecomportamientoestenelalgoritmodeclculodeespaciolibreparalosnuevos(aadido) Registroeldesbordamientodeenterosepuedeproduciryverelsiguientemensajedeerroren interbase.log: pointerpagevanishedfromDPM_next(249)(PginadepunterodesaparecidodeDPM_next(249)) Y,larealidadesqueeltamaodepginadebasededatosoeltamaodelafilanoafectaaestelmite.El lmiteesdeuntamaodemesadelamagia,queessiempreelmismo(~36,6gigabytes)ysepuede calcularenlaspginasparacualquiertamaodepginadebasededatoscomo: Nmerodepginasmximoparaunatablapuedesercalculadocomo MaxDataPageCount=(MAXINT/pageSize)*17,476 MAXINT,porsupuesto,=2147483647.ColoqueeltamaodepginadebasededatosenlugardePageSize yelresultadomostrarlacantidaddepginaspuedenserasignadosacualquiermesade Porejemplo,elcuadronopuedetenermsde9millones~laspginasdedatosenlabasededatoscon4K tamaodepgina. Desdeelpuntodevistadelnmeroderegistros,unamesaconlascolumnas2enteronopuedecrecerms de600millones(!)Losdocumentos(noseolvidequecadaregistrotiene14bytesdecabecera). Confundido?MultipliqueporMaxDataPageCountPageSize,yresultadodedividirconsumayortamao promedioderegistrodemesaustedsabrcuandoestecuadrosesuperaellmiteylabasededatos dejardefuncionar. EstelmitesefijasloenFirebird2.TodavaexisteenInterBase2007. Adems:elotroladodeestelmitesedescubrirecientementeenelcolectordebasuraenla implementacindehilosFirebird2.0.3:esteerrorpuedeapareceren36.6Gbtablasdurantelarecoleccin debasura(esprovocadoporlacombinacindecondicionesespeciales).Esperamosqueseestablezcaen lasiguientesubversin2.0.4yen2,1paralosseguros. RestriccionesdetamaomximodeBLOB MecanismodeBLOBhanimplementacionesimperfeccin.EnversionesanterioresdeInterBase(hasta7,1)

era512,entoncessefijhasta2Gb.ActualmentetenemosinformacinacercadeimgenesdeDVD(4,7 GB)quesealmacenanenFirebird2.0.3.Detodasformasnoserecomiendaparaalmacenararchivos grandes(>100Mb)dentrodelasbasesdedatosFirebirdoInterBasehastaqueseaabsolutamente necesario(enestecasoserecomiendaparaponerapruebaloslmitesdeprimero). TambinmuchasdelastransaccionesenInterbase6.5versionesanteriores InterBaseenversionesanteriores6.5tieneunlmitedenmerosdetransaccinmximo(dependedel tamaodepgina),hastalarestauracin(despusdecopiadeseguridad/restaurarlasoperaciones empezardenuevodesdecero). Nmerocrticodelasoperacionesenpre6,5servidoresInterBase Databasepagesize Criticalnumberoftransactions 1024byte 2048byte 4096byte 8192byte 131596287 265814016 534249472 1071120384

Muchosgeneradores ParaInterBaseconversionesinferioresa6.0.1.6tenemosunlmitemserrnea:nmeromximodegrupos electrgenosenlabasededatos(dependedeltamaodelapgina). NmerocrticodelosgeneradoresaprincipiosdeversionesdeInterBase Version Pagesize=1024 Pagesize=2048 Pagesize=4096 Pagesize=8192 Pre6 6.0.x 248 124 504 257 1016 508 2040 1020

CorrupcionescausadasporSQL Crearyeliminarlastablasduranteeltrabajodelosusuariosintensivos' Bueno,eseldearribadelamayoradelasveceslaformadebasededatoscorruptas.Crearyeliminar tablasmientrasquelosusuariosestnescribiendoalgoenlabasededatospuedellevaraconfusinentre laspginasdelsistema(utilizadoporlastablascreadas/caer)ylosdatosdelusuario.Normalmentetales corrupcionesconducealaprdidamoderadadelosdatosypuedenserrecuperadosusandoelserviciode IBSurgeonmanual.

Traducidocon:Googletranslate.

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