Sie sind auf Seite 1von 26

Flashback

M Carmen Gabarrn

Flashback

Flashback
La operacin de flashback de base de datos:

Funciona como un botn de rebobinado (vuelta atrs) en la base de datos


Se puede utilizar en casos de corrupcin de datos lgicos provocada por los usuarios

Flashback Query est implementado usando las estructuras de undo (rollback) que Oracle utiliza habitualmente para el soporte transaccional

Flashback

Flashback. Tipos
La tecnologa de flashback permite consultar versiones anteriores de objetos de esquema, consultar datos histricos o realizar anlisis de cambios. Cada transaccin genera de forma lgica una nueva versin de la base de datos. Con la tecnologa de flashback, puede navegar por estas versiones para buscar un error y su causa:

1. Consulta de flashback
o

Consultar todos los datos en un punto en el tiempo determinado.

2. Consulta de flashback de versiones


o

Ver todas las versiones de una fila entre dos horas o dos SCN.

Ver las transacciones que cambiaron la fila.

3. Consulta de flashback de transacciones


o

Ver todos los cambios que ha realizado una transaccin.

Flashback

Flashback. Tipos
4. Flashback de borrado
Restaura las tablas borradas por accidente.

5. Flashback de tabla
Recupera una tabla a un punto en el tiempo pasado sin tener que restaurar una copia de seguridad.

6. Flashback de base de datos


La funcin de flashback de base de datos devuelve la base de datos a un punto anterior en el tiempo al deshacer todos los cambios realizados desde ese momento.

Flashback

Flashback. Parmetros
UNDO_MANAGEMENT

AUTO o NULL, permite la gestin automtica de deshacer. (Valor predeterminado). MANUAL, modo de gestin manual.

UNDO_TABLESPACE

Especifica el nombre de un tablespaces undo. Se utiliza nicamente cuando la base de datos tiene mltiples tablespaces de deshacer y desea seleccionar uno. Opcional, y es vlido nicamente en automtico deshacer modo de gestin. Especifica cuanto tiempo (en segundos) las transacciones confirmadas deben ser retenidas en los segmentos de undo antes de ser sobrescritas. Por defecto 900 segundos, 15 minutos).

UNDO_RETENTION

Flashback

Flashback. Parmetros
select name, value from v$parameter where name like 'undo%';

UNDO_MANAGEMENT debe estar en modo AUTO para usar las prestaciones flashback

Flashback

1. Consulta de flashback
Consultar todos los datos en un punto en el tiempo determinado.

2. 3. 4. 5. 6.

Consulta de flashback de versiones Consulta de flashback de transacciones Flashback de borrado Flashback de tabla Flashback de base de datos

Flashback

1. Consulta de Flashback.
A la orden SELECT se aade la clusula AS OF.

AS OF permite recuperar la versin de las filas a un momento en el tiempo o SCN particular.

Flashback

1. Consulta de Flashback.

Al utilizar la clusula AS OF de la sentencia SELECT, puede especificar la fecha y hora para el que desea visualizar los datos. Resulta til para analizar una discrepancia en los datos. Nota: A la clusula AS OF le pueden seguir TIMESTAMP o SCN.

Flashback

1. Consulta de Flashback. Ejemplo

Devolvemos el salario del empleado 200 al que tena en la fecha y hora indicas.

Flashback

1. Consulta de Flashback.

Aunque con la consulta de flashback slo podemos ver los datos que haba es posible recuperar estos datos usando un cursor.

DECLARE cursor c_flash IS select * from emp as of timestamp to_date('29/01/13 07:23', 'dd/mm/yy HH:MI'); r_emp emp%ROWTYPE; BEGIN OPEN c_flash; LOOP fetch c_flash into r_emp; exit when c_flash%notfound; insert into emp values (r_emp.empno, r_emp.ename, r_emp.job, r_emp.mgr, r_emp.hiredate, r_emp.sal, r_emp.comm, r_emp.deptno); END LOOP; CLOSE c_flash; commit; END; /

Flashback

1. Consulta de Flashback.

Para ejecutar flashback query es necesario:


El privilegio SELECT sobre los objetos, El privilegio FLASHBACK sobre los objetos, o bien

FLASHBACK ANY TABLE (permite ejecutarla sobre cualquier tabla, vista o vista materializada en cualquier esquema).

Flashback

1. Consulta de flashback 2. Consulta de flashback de versiones


o o Ver todas las versiones de una fila entre dos horas o dos SCN. Ver las transacciones que cambiaron la fila.

3. 4. 5. 6.

Consulta de flashback de transacciones Flashback de borrado Flashback de tabla Flashback de base de datos

Flashback

2. Consulta de Flashback de versiones


Permite recuperar todas las versiones de las filas existentes entre dos puntos en el tiempo o dos SCN A la orden SELECT se aade la clusula VERSIONS.

VERSIONS permite recuperar mltiples versiones confirmadas de las filas entre dos SCN o momentos en el tiempo. MINVALUE y MAXVALUE se refieren a los datos ms antiguo y ms reciente respectivamente.

Flashback

2. Consulta de Flashback de versiones

Flashback

2. Consulta de Flashback de versiones

Puede realizar consultas a partir de un intervalo de tiempo o un rango de nmeros de cambio del sistema (SCN).
Las filas devueltas por la consulta de flashback de versiones representan un historial de cambios de las filas entre transacciones.

Flashback

2. Consulta de Flashback de versiones

Slo recupera las incidencias confirmadas de las filas. Las versiones no confirmadas de las filas de una transaccin no se muestran. Las filas devueltas tambin incluyen las versiones suprimidas y las posteriormente insertadas en dichas filas. Puede utilizase para recuperar el historial de filas. Ofrece una forma de auditar las filas de una tabla y recuperar informacin sobre las transacciones que han afectado a las filas.

Flashback

2. Consulta de Flashback de versiones


select DNAME, DEPTNO, versions_XID, versions_starttime versions_endtime, versions_startscn, versions_endscn, versions_operation from DEPT VERSIONS BETWEEN timestamp TO_DATE ('29/01/13 12:00' , 'DD/MM/YY HH24:MI') AND SYSDATE; Pueden usarse las columnas ocultas: versions_starttime versions_endtime versions_startscn versions_endscn versions_XID versions_operation

Flashback

2. Consulta de Flashback de versiones. Limitaciones.

La clusula VERSIONS no se puede utilizar para realizar consultas en: Tablas externas Tablas temporales Tablas fijas Vistas

La clusula VERSIONS no puede abarcar comandos DDL. Si se modific la estructura de la tabla, la consulta deja de producir filas cuando alcanza la hora del pasado en que se cambi la estructura.

Flashback

1. Consulta de flashback 2. Consulta de flashback de versiones 3. Consulta de flashback de transacciones


Ver todos los cambios que ha realizado una transaccin.

4. Flashback de borrado

5. Flashback de tabla
6. Flashback de base de datos

Flashback

3. Consulta de flashback de transacciones.

La consulta de flashback de transacciones se utiliza para ver los cambios realizados en la base de datos a nivel de transaccin. Permite diagnosticar los problemas de la base de datos y realizar anlisis y auditoras de transacciones. La vista flashback_transaction_query almacena las sentencias SQL necesarias para deshacer los cambios realizados por una transaccin concreta o durante un perodo de tiempo especfico.

Flashback

3. Consulta de flashback de transacciones.

La vista FLASHBACK_TRANSACTION_QUERY muestra informacin acerca de las transacciones realizadas en la bd.

XID Identificador de transaccin START_SCN (NUMBER) Nmero SCN de inicio de la transaccin (system change number ) START_TIMESTAMP (DATE) Momento de inicio de la transaccin COMMIT_SCN (NUMBER) SCN de validacin de la transaccin (nulo para aquellas que estn activas) COMMIT_TIMESTAMP (DATE) Tiempo de validacin de la transaccin (nulo para aquellas que estn activas) LOGON_USER Usuario conectado

Flashback

3. Consulta de flashback de transacciones.

UNDO_CHANGE# Undo SCN (1 o superior) OPERATION Operacin realizada (D Delete, I Insert, U Update o B desconocida) TABLE_NAME Nombre de la tabla a la que se le aplica la operacin DML TABLE_OWNER Propietario de la tabla ROW_ID Rowid de la fila modificada UNDO_SQL SQL para deshacer la operacin DML indicada por OPERATION

Flashback

3. Consulta de flashback de transacciones.


select undo_change#, operation, table_owner, table_name, row_id, undo_sql from flashback_transaction_query WHERE LOGON_USER='CARMEN' AND TABLE_NAME ='DEPT';

Flashback

3. Consulta de flashback de transacciones.


UPDATE DEPT SET LOC='Cartagena' WHERE DEPTNO=60; COMMIT; Insert into dept values (70, 'Promocin', 'Cdiz'); delete from dept where deptno=50; commit; select DNAME, DEPTNO, versions_XID, versions_starttime versions_endtime, versions_startscn, versions_endscn, versions_operation from DEPT VERSIONS BETWEEN timestamp TO_DATE ('29/01/13 12:20:00' , 'DD/MM/YY HH24:MI:ss') AND sysdate;

Identificamos la transaccin

Flashback

3. Consulta de flashback de transacciones.


select XID, undo_change#, operation, table_owner, table_name, row_id, undo_sql from flashback_transaction_query WHERE XID= '110009008B0A0000'

rdenes que nos permiten anular la transaccin

Das könnte Ihnen auch gefallen