Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2003
Ixra Ixra is offline
Miembro
 
Registrado: oct 2003
Ubicación: México
Posts: 13
Poder: 0
Ixra Va por buen camino
Exclamation >>> ¡¡A T E N C I Ó N!! Cómo recuperar registros borrados ó eliminados en IB <<<

¡ A T E N C I Ó N !

Saludos, Programadores

Solicito de la manera más atenta, ayuda para poder recuperar registros eliminados de una tabla en Interbase.

Después de cometer el query que borró los registros no se ha tocado la base de datos, es decir, que la información no se ha sobreescrito.

Todos los usuarios de Interbase sabemos que cuando se borran registros de una tabla en realidad el borrado es lógico, ya que el tamaño de la base de datos (archivo GDB) no disminuye de tamaño, además si se abre este archivo con un editor de texto (notepad), puede verse aún la información por ahí.

No existen herramientas para realizar esta tarea, pero existen personas que prestan el servicio de ingeniería para recuperación de registros. Si alguien hace esto, por favor postear su oferta.

Para poder realizar esta tarea es necesario tener conocimientos y experiencia de la API de Interbase (Gds), programación de C++ (obvio) y conocimiento de estructuras de datos.

Si alguien puede ayudarme, se los agradeceré bastante.
Responder Con Cita
  #2  
Antiguo 17-10-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por Ixra
Todos los usuarios de Interbase sabemos que cuando se borran registros de una tabla en realidad el borrado es lógico,
Es lógico a nivel del sistema de archivos, pero es físico en cuanto a la base de datos. Es decir, que no podrás recuperarlos a través del API InterBase, tal como comentas más abajo en tu mensaje. Desde el punto de vista del servidor, un registro eliminado (y confirmada su eliminación con Commit) es irrecuperable. Otra historia es que se pueda entrar "a saco" en el archivo físico de la base de datos e intentar recueprar lo que puedas.

Cita:
Posteado originalmente por Ixra
ya que el tamaño de la base de datos (archivo GDB) no disminuye de tamaño,
Pero éso es por una cuestión de eficiencia a la hora de gestionar la estructura física de la base de datos, no para implantar un mecanismo de "borrado lógico de registros".

Cita:
Posteado originalmente por Ixra
Para poder realizar esta tarea es necesario tener conocimientos y experiencia de la API de Interbase (Gds),
Lo dicho, el API InterBase ayudará muy poco en ese problema.

Cita:
Posteado originalmente por Ixra
programación de C++ (obvio)
o C, o cualquier lenguaje que permite acceder a bajo nivel al archivo físico de la base de datos.

Creo recordar que en IBPhoenix había alguna referencia a empresas que se dedicaban a ese tipo de recuperación de datos. Pásate por allí y echa un vistazo.

Saludos.
Responder Con Cita
  #3  
Antiguo 17-10-2003
Ixra Ixra is offline
Miembro
 
Registrado: oct 2003
Ubicación: México
Posts: 13
Poder: 0
Ixra Va por buen camino
Pues que caray Kinobi-san,

Déjame decirte que precisamente vengo de IBPhoenix en donde ya he contactado varias empresas (y especialistas) que me han mandado sus presupuestos para la recuperación de la base de datos.

El problema es que los más baratos no bajan de 0.5 dólares americanos por registro, y si tomamos en cuenta que se necesitan recuperar más de 600 registros... pues va a costar un ojo de la cara .

Por otro lado, una de las expertas que contacté me comentaba que Interbase no hace bajas "lógicas" propiamente. De hecho me di a explicar en mi mensaje anterior de forma incorrecta. A lo que me refería con baja "lógica" era que las páginas de Interbase dejan de contemplar los punteros a los registros en su estrutura cuando éstos últimos se borran. Esto ciertamente no es una baja "lógica" pero tampoco una "física".

La cuestión es que es posible rescatar estos registros a través de la API si eres capaz de leer los segmentos en donde se encuentran los registros y reinsertando las referencias en las páginas.

Eso era en realidad lo que quería dar a entender. Pero bueno, ya que eres el único que ha respondido Kinobi-San, déjame hacerte una pregunta directa: ¿tu podrías ayudarme en esto?
Responder Con Cita
  #4  
Antiguo 17-10-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por Ixra
El problema es que los más baratos no bajan de 0.5 dólares americanos por registro, y si tomamos en cuenta que se necesitan recuperar más de 600 registros... pues va a costar un ojo de la cara .
Bueno, no debe ser un mercado con mucha oferta.

Cita:
Posteado originalmente por Ixra
A lo que me refería con baja "lógica" era que las páginas de Interbase dejan de contemplar los punteros a los registros en su estrutura cuando éstos últimos se borran. Esto ciertamente no es una baja "lógica" pero tampoco una "física".
Cierto, pero el que no desaparezcan los datos físicamente del archivo no está relacionado con un mecanismo de recuperación de los mismos. Por eso, en ese sentido, para el servidor (y también desde el punto de vista del API InterBase), un registro eliminado es un registro irrecuperable.

Cita:
Posteado originalmente por Ixra
La cuestión es que es posible rescatar estos registros a través de la API
Insisto, a través del API InterBase no. El API debe garantizar las cuatro propiedades (ACID)de toda transacción (e InterBase es un motor transaccional):

* (A)tomicidad
* (C)onsistencia
* (I)solation (Aislamiento)
* (D)urabilidad

Si el API permitiese la recuperación de registros eliminados (con Commit), la segunda y cuarta propiedad no podrían garantizarse.

Cita:
Posteado originalmente por Ixra
si eres capaz de leer los segmentos en donde se encuentran los registros y reinsertando las referencias en las páginas.
Correcto, pero no a través del API InterBase, sino a través del API del sistema de archivos donde esté almacenado el archivo físico de la base de datos.

Cita:
Posteado originalmente por Ixra
¿tu podrías ayudarme en esto?
Sinceramente, no. Nunca he trabajado a ese nivel.

Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:55:03.


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
Copyright 1996-2007 Club Delphi