segunda-feira, 4 de março de 2013

Flashback

FLASHBACK TABLE serve para restaurar uma tabela a um estado anterior devido a um erro qualquer.

É recomendável que o parâmetro de inicialização UNDO_MANAGEMENT esteja definido como AUTO e   o parâmetro UNDO_RETENTION para um intervalo grande o suficiente para incluir os dados que você imagina que seja necessário, para maiores informações consulte:  UNDO_MANAGEMENT e UNDO_RETENTION.


Veja também:

É necessário ter permissão para executar o FLASHBACK ou o FLASHBACK ANY TABLE.


Exemplos

Restaurar uma tabela para um estado anterior: Exemplos
Os exemplos abaixo criar uma nova tabela, employees_demo , com movimento de linha ativado, atualizar valores dentro da nova tabela, e emitir o FLASHBACK TABLE comunicado.
Criar tabela employees_demo , com movimento de linha habilitada, a partir de tabela employees da amostra hr esquema:

CREATE TABLE employees_demo 
  ENABLE ROW MOVEMENT
  AS SELECT * FROM employees;
Como referência, listar os salários inferiores a 2500:

SELECT salary
  FROM employees_demo
  WHERE salary < 2500;
SALARY ---------- 2400 2200 2100 2400 2200

Nota:
Para dar tempo para o SCN para propagar a tabela de mapeamento usado pelo FLASHBACK TABLE declaração, espere um mínimo de 5 minutos antes de emitir a seguinte declaração. Esta espera não seria necessária se uma tabela previamente existentes foram usados ​​neste exemplo.
Emitir um aumento salarial de 10% aos funcionários que ganham menos de 2500:

UPDATE employees_demo
  SET salary = salary * 1.1
  WHERE salary < 2500;

5 rows updated.
COMMIT;
Como referência segunda, listar os salários que permanecem menos de 2500 na sequência do aumento de 10%:

SELECT salary
  FROM employees_demo
  WHERE salary < 2500;
SALÁRIO ---------- 2420 2310 2420
Restaurar a tabela employees_demo ao seu estado de um minuto antes da hora do sistema atual:

FLASHBACK TABLE employees_demo
  TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' minute);
Listar esses salários inferiores a 2500. Após o FLASHBACK TABLE comunicado emitido, esta lista deve coincidir com a lista na primeira referência.

SELECT salary
  FROM employees_demo
  WHERE salary < 2500;
SALÁRIO ---------- 2400 2200 2100 2400 2200

Recuperando uma tabela descartada: Exemplo
Se você acidentalmente deixar cair o hr.employees tabela e deseja recuperá-lo, emitir a seguinte declaração:

FLASHBACK TABLE employees TO BEFORE DROP;
Se outra employees tabela foi criada na hr esquema, use a RENAME TO cláusula para renomear a tabela acessado:

FLASHBACK TABLE employees TO BEFORE DROP RENAME TO employees_old;
Se você sabe que a tabela de funcionários foi derrubado várias vezes, e você deseja recuperar a versão mais antiga, consultar o USER_RECYLEBIN tabela para determinar o nome gerado pelo sistema e, em seguida, usar esse nome no FLASHBACK TABLE comunicado. (Sistema de nomes gerados em seu banco de dados diferentes daqueles mostrados aqui.)

SELECT object_name, droptime FROM user_recyclebin 
   WHERE original_name = 'employees';
DROPTIME OBJECT_NAME ------------------------------------------------- RB $ 45703 $ $ TABELA $ 0 2003-06-03:15:26:39 RB 45704 $ $ $ $ 0 TABELA 2003-06-12:12:27:27 RB 45705 $ $ $ $ 0 TABELA 2003-07-08:09:28:01



Related Posts Plugin for WordPress, Blogger...