Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Se puede recuperar registros eliminados en firebird ???? (https://www.clubdelphi.com/foros/showthread.php?t=63354)

AGAG4 10-02-2009 19:47:23

Se puede recuperar registros eliminados en firebird ????
 
Alguien sabe como recuperar registros de una tabla en firebird 1.5 ????, me eche :eek: cientos de registros hace unos dias de una tabla y quiero ver si se pueden recuperar, ya que sé que firebird manda los registros eliminados en algun recolector de basura....

Me preguntarán, que si tenia respaldos, pues lamentablemente no tenia.

Agradezco cualquier sugerencia....

Al González 10-02-2009 20:12:25

Interesante situación, Alfredo. Por la forma en que trabajan algunos motores y dependiendo de cuántas modificaciones adicionales se hayan realizado sobre esa base de datos, es probable que los registros eliminados sigan ahí, o sólo algunos de ellos, o nada más un vestigio.

Haciendo una búsqueda en Google, encontré los servicios de un cirujano.

Y también encontré este par de hilos con la opción de búsqueda de Club Delphi:

http://www.clubdelphi.com/foros/show...perar+borrados

http://www.clubdelphi.com/foros/show...rados+firebird

Suerte con este asunto y no dejes de contarnos cómo se desenvuelve.

Al González. :)

AGAG4 10-02-2009 21:04:38

Gracias Alberto, checo los link's....

AGAG4 10-02-2009 21:36:23

Encontre uno muy bueno, pero no es libre :)

http://www.ibsurgeon.com/products/de...ery/IBUndelete

Al González 10-02-2009 21:54:23

Cita:

Empezado por AGAG4 (Mensaje 337708)
Encontre uno muy bueno

¡Estupendo!

Cita:

Empezado por AGAG4 (Mensaje 337708)
pero no es libre :)

Bueno, habría que analizar si los registros perdidos por falta de respaldos valen los 150 USD que cuesta ese paquete. ;)

Casimiro Notevi 10-02-2009 23:07:35

Cita:

Empezado por AGAG4 (Mensaje 337708)
Encontre uno muy bueno, pero no es libre :)

http://www.ibsurgeon.com/products/de...ery/IBUndelete



Por lo visto, puedes descargar una versión que te dice cuántos registros puedes recuperar, y después compras o no, depende del resultado.

AzidRain 10-02-2009 23:55:29

No se si tenga mucho o poco que ver con el post, pero creo a mi juicio viene a colación. ¿Por qué he encontrado mas post sobre como recuperar alguna cosa de una BD Firebird que el equivalente a MySQL? No digo cual es mejor o peor, simplemente que tengo más de 3 años trabajando con MySQL y nunca se me ha presentado por fortuna esa contingencia de tablas corruptas o similares y sin embargo he encontrad mucho material sobre como corregir tablas corruptas de Firebird.

RONPABLO 11-02-2009 00:10:42

Cita:

Empezado por AzidRain (Mensaje 337719)
No se si tenga mucho o poco que ver con el post, pero creo a mi juicio viene a colación. ¿Por qué he encontrado mas post sobre como recuperar alguna cosa de una BD Firebird que el equivalente a MySQL? No digo cual es mejor o peor, simplemente que tengo más de 3 años trabajando con MySQL y nunca se me ha presentado por fortuna esa contingencia de tablas corruptas o similares y sin embargo he encontrad mucho material sobre como corregir tablas corruptas de Firebird.


Pues yo tenía un código daña base de datos (no era hecho por mi, pero yo era el que daba la cara)... Dañaba primero en Paradox (que era como normal ver las tablas corruptas), luego en MySQL... y también las daño.. y claro también daño las de firebird, hasta que le metimos mano a fondo y después de eso solo se daño en dos equipos con problemas extremos de Hardware, la verdad la experiencia que he tenido con BBDD es que se corrompen (colocar en google >>el motor que use<< corrupta y va a encontrar mucho tema)... Tal vez aquí en el club de se habla de "muchos" problemas de corrupción de Firebird ya que en este foro tal vez hay un numero de usuarios mayor en dicho motor que en otros como MS SQL, My SQL... Aunque este hilo como tal no trata sobre eso en especifico, es más el caso de que usted diga en una tabla con 100 mil registros algo así:

Código SQL [-]

   Delete From TablaCon100MilRegistros;

Y luego se haga la pregunta... será que despues de borrar datos y hacer commit se pueden recuperar esos datos??... se debe poder, como tal hay empresas que ofrecen dicho servicio....

galileoe 11-02-2009 00:21:27

Cita:

Empezado por AzidRain (Mensaje 337719)
No se si tenga mucho o poco que ver con el post, pero creo a mi juicio viene a colación. ¿Por qué he encontrado mas post sobre como recuperar alguna cosa de una BD Firebird que el equivalente a MySQL? No digo cual es mejor o peor, simplemente que tengo más de 3 años trabajando con MySQL y nunca se me ha presentado por fortuna esa contingencia de tablas corruptas o similares y sin embargo he encontrad mucho material sobre como corregir tablas corruptas de Firebird.

Pues tienes razón cuando dices: "poco que ver con el post" porque no tiene nada que ver, primero: este post no habla de bases de datos corruptas sino de como recuperar registros que alguien eliminó por error. Segundo: No ayudas en nada a resolver el problema. Tercero: Si quieres decir que MySQL es mejor que Firebird... estás completamente loco, cada una sirve en un entorno determinado y dependiendo de la aplicación que desees desarrollar. Además de que MySQL no es totalmente gratuita como muchos piensan (parece que no han leído la licencia con detenimiento).

Saludos a todos y no se te olvide describir si pudiste recuperar los registros, AGAG4.

Al González 11-02-2009 00:38:30

Cita:

Empezado por AzidRain (Mensaje 337719)
...tengo más de 3 años trabajando con MySQL y nunca se me ha presentado por fortuna esa contingencia de tablas corruptas o similares...

Yo llevo cinco años trabajando con Firebird y nunca he tenido problemas de ese tipo tampoco. :)

No sé qué tan subjetiva podría ser la apreciación que haces, César. Mas no deja de ser interesante, sobre todo al ver los resultados que me da Google:

recovery+MySQL 2640000 resultados
recovery+Firebird 1130000 resultados

recovery+MySQL+database 714000 resultados
recovery+Firebird+database 272000 resultados

"deleted records"+recovery+MySQL 9400
"deleted records"+Firebird+database 558

"recovering deleted records"+MySQL 30
"recovering deleted records"+Firebird 12

MySQL+corrupt 555000
Firebird+corrupt 103000

MySQL+corrupt+repair 2400000
Firebird+corrupt+repair 783000

Desde mi punto de vista, el principal factor de que los resultados de MySQL sean mayores que los de Firebird es que MySQL se utiliza más que Firebird (las muestras no significan que MySQL sea menos estable, aunque cabe esta posibilidad).

En contraposición, creo que la percepción que insinúas acerca de la vulnerabilidad de Firebird en este terreno podría venir de que recoges frases de foros dedicados a Delphi, lenguaje con el que es bastante normal que se utilice más InterBase / Firebird que MySQL.

La conclusión de este pequeño análisis es que uno tiende a encontrar más historias (buenas y malas) de algo, donde ese "algo" es usual. No conozco MySQL, pero confío bastante en la estabilidad de Firebird por la grata experiencia de usarlo sin problemas de robustez durante en estos cinco años. :)

Allende, cabe recordar que el problema de Alfredo es de eliminación accidental de registros.

Un abrazo sin mitos.

Al González. :)

P.D. Por otro lado lamento que galileoe haya dado una respuesta un poco acalorada, más que nada porque conozco a AzidRain y puedo asegurar que no es tan "troll" como a veces parece. :p

Pero te lo mereces, César, por insinuar cosas feas sobre nuestro amado Firebird. :D ;)

Casimiro Notevi 11-02-2009 01:01:19

No se trata de base de datos firebird corrupta, sino de que ha borrado unos datos sin querer y quiere recuperarlos :)

Debo decir que desde que uso firebird (y antes interbase) hace ya 11 años :eek: y en clientes de todo tipo, nunca, repito lo de nunca, (de momento) jamás se ha perdido nada en ninguna base de datos, salvo en las que se han estropeado por "causas de fuerza mayor" (disco duro roto) :D.
El tamaño de las bases de datos de nuestros clientes tienen una media 750 Mb. Una veintena de clientes rondan entre los 5 y los 10 Gb. y un par de ellos están ya en casi 20 Gb.
La verdad es que creo que Firebird fue todo un acierto el haberlo elegido en su día.


p.d: Otras bases buenas: PostgreSQL, MySql tampoco es mala, sólo la encuentro bastante simple. Cada una tiene su 'lugar' y 'momento' para ser usada :)

AGAG4 11-02-2009 16:32:45

Quiero aclarar un poquito las cosas, es correcto lo que dice Al Gonzalez, fue error mio, modifique un trigger para eliminar registros "BASURA" pero no hice las pruebas suficientes para estar seguro de que funcionaba al 100% el trigger por lo que aplique dicho cambio en una BD funcional y cual fue mi sorpresa que al dia siguiente me llamo la atencion que no estaban unos registros, hasta que busque en toda la tabla y empece a sudar frio :D, mi otro error es que no configure correctamente una aplicacion que tengo para hacer respaldos diarios, me vio la tarea de investigar como recuperarlos porque sé que firebird tiene su recolector de basura, encontre el IBUndelete y si me señala un contador de 9,310 registros que tengo que capturar :eek:, ahorita no dispongo de $150 dolares para pagarlo, pero en fin eso me pasa por wey por no revisar bien las modificaciones, es la 1er vez que me pasa en 6 años que tengo usando firebird, le veo el lado amable de esta bronca, " De los errores se Aprende "

ATENCION: Durante todo esos años que he usado firebird si me ha tocado ver 1 ó 2 BD corruptas por broncas del disco duro ó problemas de la energia electrica de alli para adelante todo ha marchado muy bien, por lo que la decisión de usar firebird fue la mejor que he tomado para el desarrollo de mis aplicaciones en delphi.

Saludos.

Al González 11-02-2009 17:23:42

Me pregunto qué tan complejo sería tratar de recuperar esa información mediante un programa en Delphi, usando lectura binaria...

¿Alguien conoce, a grandes rasgos, cómo guarda Firebird los registros en el archivo .fdb?

Casimiro Notevi 11-02-2009 17:31:54

Cita:

Empezado por Al González (Mensaje 337783)
Me pregunto qué tan complejo sería tratar de recuperar esa información mediante un programa en Delphi, usando lectura binaria...

¿Alguien conoce, a grandes rasgos, cómo guarda Firebird los registros en el archivo .fdb?


La verdad es que todo se centra en lo de siempre: "falta de tiempo".
Hay que tener en cuenta que ahí está el código fuente, pero ¿a quién le sobra algo de tiempo? :S

AGAG4 11-02-2009 21:21:51

Ojala alguien saque el AS de la manga para alguien que este en peores circunstancias....

chiunti 04-04-2010 17:12:17

Urge recuperación.
 
Yo también tengo ese problema, o peor tantito.

Llevo 11 años tambien trabajando con delphi y bases de datos interbase y firebird y nunca se me había presentado problema alguno... hasta ahora. Aunque es por una metida de pata mia. la base de datos nunca me ha dado problemas y es una de las más completas y versatiles con las que he trabajado.

Ahora bien. mi problema es el siguiente. Modifique un Trigger que realiza un update a otra tabla, y por error el UPDATE no llevaba clausura WHERE, asi que ya lo saben: TOOOODA mi tabla quedo actualizada no solo una... sino varias veces por el UPDATE y aunque tengo un respaldo de la base de datos de hace 3 dias, aun me faltan unos cuantos miles de registros por recuperar la información.

Sinceramente no soy de los que revise el codigo de firebird para ver como este hecho porque no es mi especialidad, no creo que pueda aportar mucho en la parte de desarrollo, sin embargo si en la de usuario final, ya que le hacen falta algunas herramientas administrativas a la base de datos.

Aunque he recurrido a San google no he podido resolver mi problema, ojala alguien tenga alguna herramienta para escudriñar dentro del garbage collector de firebird.

guillotmarc 04-04-2010 21:26:01

Como ha comentado ya AGAG4, aparentemente las únicas utilidades conocidas con acceso a bajo nivel a las bases de datos Firebird son las de IB-Surgeon

http://www.ib-aid.com/

Lo que me gustaría resaltar es que como dicen en la Web de IB-Surgeon lo más importante una vez detectada la eliminación accidental de datos (o en el rarísimo caso de corrupción) es detener y desconectar inmediatamente esa base de datos.

El solo hecho de hacer una consulta intentado leer esos datos, o hacer un Backup, puede ocasionar que el motor generacional de Firebird utilice las páginas liberadas de la base de datos, por lo que se machacarían los datos eliminados y se perdería definitivamente su información.

Así pués lo primero es detener el Servidor y hacer una copia física del archivo de la base de datos (y no un backup y restore). Solo cuando tengamos esa copia a bajo nivel del archivo de datos, podremos volver a poner en línea la base de datos para intentar recuperar los datos o permitir que los usuarios sigan trabajando.

NOTA: Otra opción de recuperar datos borrados o corruptos, sin comprar los productos de IB-Surgeon, es contratar los servicios de recuperación de datos de IB-Phoenix (la empresa detrás de Firebird). Lo bueno es que la recuperación la hará un profesional con experiencia en estos casos, por lo que se tiene la seguridad de que se recuperarán todos los datos posibles, lo malo es que probablemente salga más caro que adquirir un producto de IB-Surgeon. 390$ para las dos primeras horas (mínimo) y 195$ para cada hora adicional que se necesite para la recuperación de los datos (la verdad es que el servicio puede parecer caro, pero a mi me tranquiliza saber que siempre tenemos este último recurso).

http://www.ibphoenix.com/main.nfs?a=...e=ibp_services

PD: aunque lo pasas fatal cuando te ocurren estas cosas, al menos aprendes algo, la importancia de tener una buena política de copias de seguridad.

Saludos.


La franja horaria es GMT +2. Ahora son las 12:23:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi