Cómo utilizar la consulta de flashback en oracle 12c

¿Alguna vez has querido una máquina del tiempo? No existe tal cosa. O lo hace? El tiempo de 12c Oracle máquina conocida como Escena retrospectiva le permite rebobinar, avanzar rápidamente, y recuperarse de situaciones con facilidad. Escena retrospectiva puede sonar intimidante, pero la función es simple.

Video: Oracle- Flashback Technologies

Una característica llamada Flashback Query es uno de los más simples y más fáciles de usar variaciones de la tecnología de Oracle Flashback. En pocas palabras, le permite consultar una tabla en un punto en el pasado. Esto significa que, a pesar de las actualizaciones, inserciones y eliminaciones que pudieron haber sucedido, se ve la mesa, ya que existía en el momento de su elección.

He aquí una breve demostración con el ejemplo de esquema, HR:

  1. Iniciar sesión en SQL * Plus como el usuario HR.

  2. Mira los datos de la tabla de departamentos.

  3. Restringir la consulta tanto para minimizar la producción y hacer que la demostración más evidente. Escriba lo siguiente:

    Debería ver algo como esto:

    DEPARTMENT_ID DEPARTMENT_NAME ------------- ------------------------------ 120 Treasury130 Corporate control Tax140 y las filas Credit150 Accionista Services160 Benefits170 Manufacturing180 Construction190 Contracting200 Operations210 TI Support220 NOC230 TI Helpdesk240 Gobierno Sales250 al por menor Sales260 Recruiting270 Payroll16 seleccionados.
  4. Modificar la tabla mediante la eliminación de las filas seleccionadas en la salida anterior. Para quitar la filas, tipo

    Video: Tutorial Flashback Oracle Database

    Usted debe ver esto:

    16 filas eliminadas.
  5. Confirmar los cambios escribiendo

    Video: Flashback Database Oracle 11g

    Usted debe ver esto:

    Comprometerse completa.
  6. Ejecutar la consulta original de nuevo.

    Usted debe ver esto:

    no hay filas seleccionadas

    El siguiente paso es el que utiliza la magia de Flashback Query. Piense en el tiempo antes de que ocurriera la eliminación. En este caso de ejemplo, que hace cinco minutos.

    Video: Flashback Database - Part 1

  7. Escribir algo similar a la siguiente para ver los datos tal como existía hace cinco minutos:

Ves las filas tal como existían en el paso 2. La clave es el AS de la cláusula marca de tiempo. Para el objetivo de la marca de tiempo, se puede ver que el ejemplo usa las matemáticas en la función SYSDATE. SYSDATE representa la hora actual, en este momento.

Restando 1 de SYSDATE significa ayer. El ejemplo resta la fracción 1/288, lo que significa cinco minutos, desde SYSDATE. Para conseguir que la fracción, el ejemplo se utiliza la siguiente fórmula:

24 (horas en un día) × 60 (minutos en y hora) = 1440 (minutos) en un día

Así, más de 5 1440 es igual a 1 sobre 288.

También puede utilizar una marca de tiempo explícito en lugar de una función SYSDATE. Por ejemplo:

seleccione department_id, departmentsAS department_namefrom DE TIMESTAMP TO_DATE (`16 -AUG-2013 20:04:00` , `DD-MES-AAAA HH24: MI: SS`) donde MANAGER_ID es null-

Aquí hay un buen truco. Supongamos que has borrado accidentalmente esas filas y desea insertar de nuevo en su mesa. Puede utilizar Flashback Query para hacer tal cosa. Esto va a ser mucho más rápido que hacer una recuperación RMAN a un punto en el tiempo.

Para insertar sus filas eliminadas de nuevo en su mesa, el tipo

lt; insertar en departmentsselect * desde departmentsAS DE TIMESTAMP TO_DATE (`16 -AUG-2013 20:04:00` , `DD-MON-YYYY HH24: MI: SS`) donde MANAGER_ID es nulo-gt;

Usted debe ver esto:

16 filas creadas.

Consultar la tabla y, cuando esté satisfecho, enviar los cambios.

Sólo se puede producir un retroceso en cuanto a su configuración para el UNDO_RETENTION parámetro de ejemplar. Por defecto, este parámetro se establece en 15 minutos (900 segundos). Si el tiempo que deseen volver a está más allá de su UNDO_RETENTION, puede que no sea capaz de ver sus datos y recibirá un error en su lugar.

Antes de dar el consejo anterior y fija su UNDO_RETENTION para reflejar el valor de un mes de tiempo, tenga en cuenta que esto hará que su tabla UNDO para crecer porque tiene que almacenar las imágenes de sus datos antiguos. Usted debe equilibrar cuidadosamente un ajuste con el consumo de espacio UNDO_RETENTION realista.

Artículos Relacionados