Bases de Datos - RECUPERACION DE DATOS DE UNA TABLA

   
Vista:

RECUPERACION DE DATOS DE UNA TABLA

Publicado por Andres (2 intervenciones) el 05/05/2010 21:59:06
BUENAS TARDES PROGRAMADORES,

NECESITO UN FAVOR URGENTE, RESULTA QUE BORRE LOS REGISTROS DE UNA TABLA CON UN COMANDO (DELETE) PARA LIBERAR ESPACIO EN EL DISCO, LUEGO EN LAS PROPIEDADES DE LA BASE DE DATOS EN ARCHIVOS CAMBIE EL TAMAÑO INICIAL DEL ARCHIVO DE LOG, EN ESTE CASO TURSCADA.LDF PARA QUE ME DISMINUYERA EL TAMAÑO DEL TRANSACTION... Y AHORA SE NECESITAN ESOS DATOS URGENTE.

CABE ANOTAR QUE NO TENGO COPIA DE SEGURIDAD YA QUE ACABE DE MONTAR LA BASE, PERO YA CON ESE TIEMPO CORTO YA TENIA MAS DE 100.000 REGISTROS.

COMO HAGO PARA RECUPERARLA???? AGRADEZCO SU AYUDA!!

CORDILAMENTE,

ANDRES
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:RECUPERACION DE DATOS DE UNA TABLA

Publicado por Franklin Gamboa (188 intervenciones) el 06/05/2010 16:56:26
Si corriste el delete fuera de una transaccion ya no hay nada que hacer, y si estaba dentro de una transaccion y le diste commit tampoco se puede hacer nada, si la transaccion sigue abierta (honestamente lo dudo) solo dale rollback y listo.

Lo que pasa es que el motor de base de datos va a guardar una copia de las operaciones DDL y DML en el archivo LOG en caso que ocupe hacer un rollback, pero una vez se hace commit, las páginas que ocupara ese "respaldo" se marcan como listas para reutilizar, con lo que se sobreescribencon datos cuando el LOG asi lo requiere (no voy a entrar a discutir cuando o como ocurre esto porque podría darme todo el día escribiendo al respecto). Eso hace que, en este momento, dado el crecimiento de la base de datos (100.000 registros en un "corto tiempo") es muy probable que las páginas del log ya hallan sido sobreescritas, lo que imposibilitaría su recuperación.

Vale la pena, no obstante,m intentar recuperar los datos de la misma, Si estas en SQL Server (lo asumo por la extension del archivo log) debes recuperar la base de datos desde el log de transacciones e intentar ir al momento en el tiempo previo a que borraras los registros (si tienes suerte, todavía va a estar en el log). si le hiciste un truncate y un shrink al log, ni gastes tu tiempo intentando esto, ya que de antemano te digo que no va a funcionar.

Como precaución, la proxima vez, antes de borrar cualquier dato de cualquier tabla, guarda un respaldo de la tabla en cuestion, ya sea en otra tabla, en archivos planos o en el formato de tu preferencia.

Tambien, como mejores practicas de administración de bases de datos, debes guardar respaldos periódicos de tu base de datos y de los archivos log, para garantizar la disponibilidad de la información (nosotros guardamos uno completo a diario, incrementales cada hora y respaldos del log de transacciones cada media, no lo tomes como la panacea enlatada baja en calorias, pero puede darte una idea de que tanto o tan poquito se pueden hacer respaldos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RECUPERACION DE DATOS DE UNA TABLA

Publicado por Carlos Andrés Porras Niño (2 intervenciones) el 06/05/2010 23:12:00
Hola Franklin,

De antemano muchas gracias por su ayuda me quedo muy claro todo y por lo que veo y e investigado ya no es posible recuperar esos datos. Quisiera saber si desde SQL server 2008 Express Edition puedo realizar backup incrementales cada hora, perdona la molestia.

Y nuevamente muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RECUPERACION DE DATOS DE UNA TABLA

Publicado por Franklin Gamboa (188 intervenciones) el 10/05/2010 20:41:50
Si claro.

Las limitantes en la version express van mas hacia el lado del rendimiento/crecimiento de la base de datos que hacia la parte de los respaldos.

Aqui esta este documento que te puede ayudar a aclarar muchas dudas al respecto, el problema es que solo lo he conseguido en ingles.

http://msdn.microsoft.com/en-us/library/ms175477.aspx

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar