Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Utilización de FLASHBACK EN ORACLE

Enviado por   •  14 de Diciembre de 2018  •  808 Palabras (4 Páginas)  •  386 Visitas

Página 1 de 4

...

COMMIT;

Después de eliminar las tablas e insertar datos nuevos a employees y departments. Al realizar las operaciones de eliminación y creación en términos de filas, cada tabla tiene ahora una versión por fila. Ahora supongamos que una transacción errónea elimina empleado_id 111 de la tabla employees;

2.

UPDATE employees SET salario = salario + 100 WHERE empleado_id = 111;

INSERT INTO departments ( departamento_id , departamento_n ) VALUES ( 20, 'Finance');

DELETE FROM employees WHERE empleado_id = 111;

COMMIT;

A continuación, se asigna un nuevo nombre al empleado con id 111.

INSERT INTO employees (empleado_id, empleado_n, salario) VALUES (111, 'Tom', 777);

UPDATE employees SET salario = salario + 100 WHERE empleado_id = 111;

UPDATE employees SET salario = salario + 50 WHERE empleado_id = 111;

COMMIT;

Supongamos que el Administrador de la base de datos detecta el error de aplicación y se debe diagnosticar el problema. El administrador de la base está dentro de sus funciones el diagnosticar el problema. Para ello se emite una consulta de recuperación de versiones de las filas de la tabla employees correspondiente al empleado_id. La consulta utiliza pseudocolumnas en Oracle Flashback Query versión.

SELECT versions_xid XID, versions_startscn START_SCN,

versions_endscn END_SCN, versions_operation OPERATION,

empleado_n, salario

FROM employees

VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE WHERE empleado_id = 111;

El resultado sería lo siguiente:

[pic 2]

Los resultados de las filas están en orden cronológico descendente. La tercera fila corresponde a la tabla inicial, es decir, a la primera tabla creada. La segunda fila corresponde a la fila en la transacción errónea (eliminación). La primera fila corresponde a la versión de la fila que se reinserto con un nuevo nombre para el empleado “TOM”.

El administrador de la base datos tiene que identificar la transacción errónea la cual es “08000A0040040000” y utilizar Oracle Flashback Query Transaction para auditar todos los cambios realizados por esta transacción.

SELECT xid, start_scn, commit_scn, operation, logon_user, undo_sql

FROM flashback_transaction_query

WHERE xid = HEXTORAW('08000A0040040000');

El resultado será similar:

[pic 3]

Para que el resultado de la consulta sea más fácil de leer, el administrador de base de datos utilizas estos comandos SQL * Plus.

COLUMN operation FORMAT A9

COLUMN table_name FORMAT A10

COLUMN table_owner FORMAT A11

Para ver los detalles de la transacción errónea y todas las posteriores operaciones, se realiza la siguiente consulta:

XID SELECT, start_scn, commit_scn, operación, nombre_tabla, table_owner

DE FLASHBACK_TRANSACTION_QUERY

DONDE table_owner = 'HR'

Y start_timestamp> =

TO_TIMESTAMP (‘2017-01-01 11:00:00', 'AAAA-MM-DD HH: MI: SS');

...

Descargar como  txt (5.8 Kb)   pdf (51.6 Kb)   docx (14.4 Kb)  
Leer 3 páginas más »
Disponible sólo en Essays.club