Inicio > Oracle > Recuperar una tabla luego de ser Eliminada BD – Oracle – FlashBack

Recuperar una tabla luego de ser Eliminada BD – Oracle – FlashBack


Imaginemos el siguiente Panorama:

Tenemos una tabla “A”, luego la eliminamos (Drop)

Creamos de nuevo una tabla “A”, la volvemos a eliminar (Drop)

Creamos de nueva cuenta una tabla “A” y la volvemos a eliminar (Drop).

Posteriormente se nos solicita que debemos de recuperar la Tabla A, la primera que creamos. ¿Como lo haríamos?

Oracle maneja una papelera en la cual se guarda todo lo que eliminamos a este se le llama recyclebin 

Y desde ahi podriamos recuperar la tabla que deseamos usando el FlashBack Table: Recupera tablas eliminadas.

Como resolverlo:

 

Forma 1: ( Ineficiente)

Para recuperar una tabla con FlashBack es de la siguientes maneras

flashback table "NombreTabla" to before drop;
flashback table "NombreTabla" to before drop rename to "NuevoNombre";

Si queremos recuperar la Tabla A que creamos por primera vez, tendriamos que hacer lo siguiente:

flashback table A to before drop rename to A3;
flashback table A to before drop rename to A2;
flashback table A to before drop;

Y ahi ya tendriamos recuperado la Tabla A, luego posterioremente eliminamos las tablas A2 y A3.
Solucion 2:

Utilizando el RECYCLEBIN corremos la siguiente query para ver los elementos eliminados.

SELECT object_name, original_name, type, droptime, base_object FROM RECYCLEBIN;

y nos devolvera lo siguiente:

OBJECT_NAME                    ORIGINAL_NAME   TYPE
------------------------------ --------------- ----------
DROPTIME            BASE_OBJECT
------------------- -----------
BIN$4PK0jfk4R1uFiZLIQ7HHIg==$0 EMP_FLASH       TABLE
2007-08-30:16:56:31       53938
BIN$C+EsfasdiwJjhsSjshdfHSS=$0 EMP_FLASH       TABLE
2007-08-30:16:55:21       53934
BIN$C+EJy7/qThipip4yLQM8fQ==$0 EMP_FLASH       TABLE
2007-08-30:16:54:59       53934

Ahi podemos observar que hay 3 elementos eliminados y son de la clase Table por lo cual son nuestras 3 tablas llamadas A. Pero tienen nombres raros el “object name”, asi que en base a este nombre recuperaremos nuestra tabla A, como sabemos que tabla es la indicada, en base a la fecha y hora de eliminacion, por lo cual la de fecha mas antigua es la tabla correcta en este caso. La de nombre

BIN$C+EJy7/qThipip4yLQM8fQ==$0

Por lo cual para recuperar la tabla tendriamos que hacer lo siguiente:

FLASHBACK TABLE "BIN$C+EJy7/qThipip4yLQM8fQ==$0" TO BEFORE DROP RENAME TO A;
Y listo tenemos nuestra Tabla A de regreso.

Para este ejemplo se utilizo el Usuario Scott

SQL> ALTER USER SCOTT ACCOUNT UNLOCK;
sqlplus scott/tiger
Anuncios
Categorías:Oracle
  1. febrero 10, 2014 en 10:38 am

    excelente dato!

  2. Anónimo
    febrero 26, 2014 en 8:13 am

    mejor que excelente amigo gracias me salvaste .

  3. febrero 26, 2014 en 8:17 am

    gracias te pasaste

  4. Anónimo
    octubre 8, 2014 en 11:52 am

    Excelente

  5. julio 28, 2017 en 10:03 am

    Hi, its pleasant post on the topic of media print, we all
    be familiar with media is a enormous source of facts.

  6. julio 28, 2017 en 12:23 pm

    This web site really has all the information and facts I needed about
    this subject and didn’t know who to ask.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: