Está en la página 1de 3

Firebird

Recuperacin de bases de datos


Estedocumentoesunaguadecomoarreglarunabasededatosquehayaresultadadaada.Evidentementeno
setienengarantasdexito,perolaexperiencianosdiceque,enun80%deloscasos,losdatosserecuperansin
mayoresproblemas.Enelotro20%,loindicadoenestaguiasequedacortoysenecesitaunpocomasdetrabajo.
Enun5%deloscasos,sobretodoenaquellosenquesehaseguidoutilizandoelprogramavariosdasapesarde
losavisosdecorrupcinenelfichero,nosehapodidorecuperarelficheroenabsoluto.
Lamoralejaessimple:Inviertamediahoraenconfigurarcorrectamenteunsistemadecopiasdeseguridad,por
ejemploste,yseahorraradasenterosdelaempresaparadasinsabersilosdatospodrnrecuperarseosi
tendrqueusarlacopiadeseguridaddehacedosotressemanas...ylaposibilidaddeperderlosdatosesmas
quereal!
PASO 1
Comosqueestrota
Sesabequeunabasededatosestrotadevariasmaneras,aunquelaUNICAseguraeshacerunacopiade
seguridadyrecuperarla:Sielprocesonodaerrores,obtenemosunabasededatosimpecable,ysabemosquela
originalnocontenaproblemas.
Normalmentelosabremosporqueelprogramadaerroresalentraraalgunapantalla,coneltexto"consistency
error"onopuedeconectarsealabasededatos,osilascopiasdeseguridadfallan,o,engeneral,cuandoel
programasecomportaextrao.
PASO 2
Pasosprevios
Cuandosospechamosquelabasededatosestcorrupta,seaporlaraznquesea,loimportanteesintentar
solventarelproblemaCUANTOANTES,yaqueseguirusandoelprogramaconlosdatosenmalascondiciones
agravarlasituacinypuedenllegarahacersetotalmenteirrecuperables.
Lospasospreviosserianestos,enesteorden(esimportanteelorden):
1. LoPRIMEROesdejardeusarelprograma,queTODOSsalgandelaaplicacin.
2. Todolosiguientelorealizaremosdesdeelservidor,esdecir,elordenadordondefsicamenteestn
grabadosesosdatos.
3. Localizarelficherodedatos(extensinFDBoGDB,podemosaveriguarcualeslacarpetamirandolaruta
queapareceenlaventanadeentradaalprograma,enlaltimalnea).
4. Cambiarleelnombrealficherodebasededatos,deestaforma,estaremossegurosdequenadieloest
usando(alguienpuedehabersedejadoelprogramaminimizado)ytambinquenadieentrarenel
programayusarlosdatosmientrasdureelproceso.
5. HacerunacopiadelficheroyllamarleROTA.FDB(enelrestodeinstruccionessuponemosqueelficheroa
repararsellamaas).
6. Crearemoseneldisco(delservidorsiempre)unacarpetadetrabajoquellamaremosSOS,esdecir,laruta
seria"/SOS"ymovemosROTA.FDBaesacarpeta.
7. Puedequenecesitemosusaresteprogramapararealizarelproceso.Debemosdescomprimirloenla
carpeta/SOS
8. Comotodoslospasosquevienenacontinuacinserealizandesdelaconsoladecomandos(smbolodel
sistema),abriremosunaventanadecomandos.Unavezabierto,escribiremoscd/SOSypulsaremosla
teclaintro.Enlaventanadeberaquedar/SOS>enlalineadondeahorapodemosescribirotroscomandos.
Bueno,yatenemostodolistoparaintentararreglarelficherodedatos.

PASO 3
Confirmarqueestrota
Loprimeroesasegurarnosdequepodemoshacerunacopiadeseguridadyluegorecuperarlasinproblemas.Silo
podemoshacer,lacopiadelosdatosqueobtenemosestar100%sana,yelficherooriginalnocontenaerrores
importantes.
Lonormaldecualquierformaesqueunabasededatosestropeadadeerroresenesteproceso,asqueno
esperemosmuchodeestafase.
Enlaventanadeconsola,escribiremosestoparahacerlacopiadeseguridad:
gbak -user SYSDBA -password masterkey -mode read_only -b rota.fdb rota.fbk
AcontinuacinvolvemosaconvertirelficheroFBKenunoFDBusabledesdeelprograma:
GBAK -user SYSDBA -password masterkey -C rota.fbk nueva.fdb
Silosdoscomandosseterminansinerrores,labasededatosoriginalnoestabadaada,oeldaoerapoco.El
ficheroNUEVA.FDBobtenidoest100%libredeproblemas,asquelepondramoselnombredelabasededatos
originalylocopiaramosasucarpetaparavolverausarelprogramaaccediendoaeste"ficherosaneado".
Sihemosrecibidoalgnerror,continuamosconlatarea...
PASO 4
Intentararreglarelfichero
Nohemosconseguidohaceryrecuperarunacopiadeseguridad,asquenostocaarreglarelficheroparaquese
puedahacerestacopia.
Estosehaceconestecomando:
gfix -user SYSDBA -password masterkey -mend -full -ignore ROTA.FDB
EstoNOarreglaelficherocomoparaserusadoenelprograma,peroconunpocodesuerte,squeloarregla
comoparapodersehacerunacopiadeseguridad,locualarreglaranuestrosproblemas.
PASO 5
Recuperarlosdatosaotrofichero
Bsicamenteahoravamosarepetirlospuntosindicadosenelpaso3,peroestaveznotendramosquerecibirlos
erroresanteriores.Siaunasrecibimoserrores,nopasanada,hayparmetrosextraqueseusanparaintentar
"saltarse"loserrores.
Bueno,loprimeroesvolveraconvertirlosdatosaformatoFBKdecopiadeseguridad,primerolointentaremoscon
elcomando"normal":
gbak -user SYSDBA -password masterkey -mode read_only -b rota.fdb rota.fbk
Sidaerroresdeltipo"badchecksum"significaquealgunosdatosestnmalgrabadosyelficheroestcorruptoa
pesardelohechoenelpasoanterior,peroaunpuedeintentarsehacerlacopiaconestosparmetros"reforzados":
gbak -user SYSDBA -password masterkey -mode read_only -IGNORE -b rota.fdb rota.fbk
Suponiendoqueconlaversin"reforzada"hayamosobtenidofinalmenteunficheroROTA.FBK,ahoraseguiramos
conlasegundaparte:
gbak -user SYSDBA -password masterkey -C rota.fbk nueva.fdb
Siesteprocesonosdaerroresdelestilo"indexerror"o"validationerror"esosignificaquealgndatoestgrabado
peronodeberaestarlo,poresonolopuederecuperar.
Denuevo,podemosintentarforzarlaconversinaficheroFDBaadiendoalgunosparmetrosextras:
gbak -user SYSDBA -password masterkey -IG -N -I -C rota.fbk nueva.fdb
Sitodohaidobien,finalmentetendremosunficheroNUEVA.FBKenlacarpeta/SOS,puedeocuparunpocomaso

unpocomenosqueeloriginal,delordendel5oel10%,esoesnormal.
Alllegaraqu,puedenhabernospasadotrescosas:

Losdosprocesossehicieronsinerrores.EsoquieredecirqueenlacarpetatendremosunNUEVA.FDB
100%libredeproblemas.Slonosrestacopiarloalacarpetadondeestabaelficherooriginalyponerleel
nombrequeestesolatener.Yadeberapoderseusarelprogramasinproblemas.
Enalgunodelosdospasosnosdioerror,perousandoelcomando"reforzado"conseguimosterminarel
proceso.Labasededatosresultantesest"mejor"quelaoriginal,peroposiblementeperdimoslosndices
delosdatos(labasededatosresultanteserlentsimadeusar)ypuedequealgndatodebaserborrado
porhabersidoafectadoporlarotura.Asquesiusamoslos"comandosreforzados",deberemosseguircon
elpaso6.
Nohubomaneradeterminarelproceso,nohemosobtenidoningnNUEVA.FDB,porloquedebemos
seguirconelsiguientepasocruzandolosdedos,yaquesilos"comandosreforzados"noloconsiguieron,
seguroqueelpasosiguientenosdaralgnqueotroproblemainesperado.

PASO 6
Bombeardatos
Sihemosllegadoaqu,tenemosunficheronorecuperable,msomenosdaado,asquenosquedaunasolucin
alternativa:Crearunabasededatosvacaidnticaalaoriginal,eintentar"bombear"datoadatotodoelcontenido
delaoriginalaestanuevabasededatos.
Esteprocesonormalmentenosdaralgunoserrores,estoscorrespondernconlosdatosirrecuperables.
Detallamosaqulospasosnecesariosparaesteproceso:

1. Crearemosunabasededatosidnticaperovacaconestosdoscomandos:

2.

gbak -user SYSDBA -password masterkey -m ROTA.FDB VACIA.FBK


gbak -user SYSDBA -password masterkey -c VACIA.FBK VACIA.FDB
EstodeberatardarpocoycrearunficheroVACIA.FBKbastantepequeo,delordendemediomegabyte,y
otroVACIA.FDBdeunosmegabytes.
Ahorafalta"bombear"losdatosdeNUEVA.FDB(odeROTA.FDBsinoconseguimoscrearlabasede
datosNUEVA.FDBenelpasoanterior)aVACIA.FDB,yestosehaceconelprogramaIBPUMP.Suuso
estaexplicadoenestapagina.Tambinpuedeserdescargadoelprogramadeaquyeltutorialdeaqu
ademsdeesteotroqueestaqu.

Enelproceso,siseproducenerrores,losdatosquelosproducensernsaltados,ydependiendodelagravedad
deldatopuedequeotrosdatosauxiliarestampocopasen(sifallaunregistrodecabecera,nopasarantampocosus
lneas,porejemplo).Estotienedifcilarreglo,perosisonmuchoslosdatosperdidos,sepuedeverlamanerade
volcarlos"manualmente",peroesoyaesdemasiadocomplejoparaexplicarloaquydeberponerseencontacto
conampc.
PASO 7
ltimorecurso
Bueno,realmentenohaynadamsquepodamoshacer,sihaseguidoestospasos,tienelasmismas
oportunidadesdearreglarelficheroquenosotros,peroaunhaygentequesabemuchomsdeltemay,cobrando
bastanteseuros,puedeintentararreglarelfichero.Estagentesepuedecontactarenhttp://www.ibphoenix.com

También podría gustarte