Inicio » Oracle » Backup/Restore » Flashback Table Query

Flashback Table Query

Conceptualmente hacer flasback sobre una tabla  es sencillo, solo volvemos a la información del UNDO y  luego se ejecuta y se construyen las sentencias que harán los cambios inversos. En realidad no estamos haciendo una operación de rollback estamos haciendo una nueva transacción, Los constraints están activos y los índices se mantienen. La única excepción son los triggers que se deshabilitan en la operación de flashback (aunque se pueden habilitar con una sintaxis diferente). La sintaxis es la siguiente:

flashback table departamentos to timestamp to_timestamp(’26-11-07 25:42:30′,’dd-mm-yy hh24:mi:ss’);

Esto que conceptualmente es simple puede provocar diferentes errores:

1. ORA-08189: cannot flashback the table because row movement is not enabled. Es necesario antes de hacer un flashback de una tabla habilitar el movimiento de filas de las tablas involucradas, esto se hace de la siguiente manera:

SQL > alter table departamentos enable row movement;

2. ORA-02291: integrity constraint (FK_DEPTNO) violated parent key not found. Cuando se intenta recuperar un registro de una tabla, cuya referencia padre también ha sido borrada. En esto caos deberemos recuperar ambas tablas, la padre y la hija:

SQL> flashback table empleados,departamentos to timestamp to_timestamp(’26-11-07 25:42:30’,’dd-mm-yy hh24:mi:ss’);

3. Puede fallar porque no sé respeta la llave primaria, ya que el valor de la llave ha sido reutilizado entre el borrado y flashback.

4 ORA-08180, “No snapshot found based on specified time,” No hay suficiente información de undo para regresar en el tiempo deseado.

5.ORA-00054: “Resource busy and acquire with NOWAIT specified.” Si el registro está bloqueado por otro usuario

6. La definición de la tabla no debe haber cambiado durante ese periodo, si no generará el ORA-01466: “Unable to read data—table definition has changed.”

5. No se puede ejecutar el Flashback sobre las tablas del SYS, este es por lógica puede ser peligrosísimo hacer marcha atrás en el diccionario

Si el flashback de una tabla falla por cualquier razón, se cancelará la operación de flashback y se realizara rollback sobre las partes que haya podido ir bien, se dejará todo como estaba entes del comando de flashback

 

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