코드자료실/database

[oracle] delete data 복구

cocy 2013. 2. 12. 21:42
반응형

실수로 delete하고 커밋했을시,

오라클의 flash back이라는 기능을 통해 지운 데이터를 조회할 수 있다.


SELECT * FROM T_NAME

AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE);



1. Flashback Query : 특정시간 이전의 Data 에 대해서 검색할 때

-> UNDO Data 를 기준으로 검색

1) 과거의 데이터 값 조회
     SELECT employee_id, salary FROM employees
      AS OF TIMESTAMP t1
      where emplooyee_id = 200

2) 특정 시험의 값을 이용하여 값을 수정 (서브쿼리 활용)
     UPDATE employees SET salary = 
                  (SELECT salary FROM employees
                  AS OF TIMESTAMP TO_TIMESTAMP
                  ('2005-05-04 11:00:00', 'yyyy-mm-dd hh24:mi:ss')
                  WHERE employee_id = 200)
     WHERE employee_id = 200

3) 기간을 정해서 검색 (VERSIONS BETWEEN)
    SELECT versions_xid, salary FROM employees
    VISIONS BETWEEN TIMESTAMP t1 AND t2
    WHERE employee_id = 200;
         
2. Flashback Transcation Query : UNDO SQL을 조회하는 기능

반응형