반응형

데이터베이스를 이용하다 보면 실수로 데이터를 삭제하거나, 잘못 업데이트 이후 
commit을 한 이후에 데이터를 복구방법으로
ORACLE의 TIMESTAMP를 이용하면 데이터를 복구할 수 있습니다.
 

TIMESTAMP 사용법
단위는 SECOND, MINUT, HOUR, DAY 로 지정해서 사용할 수 있습니다.

SYSTIMESTAMP에서 설정한 시간을 입력하여 데이터를 보여줍니다.

-- 10초전 데이터 조회
SELECT  *  FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' SECOND)
WHERE 컬럼 = 'A'; -- 필요에 따라서 조건문

-- 10분전 데이터 조회
SELECT  *  FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)
 
-- 3시간전 데이터 조회 
SELECT  *  FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '3' HOUR)

-- 1일전 데이터 조회 
SELECT  *  FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '1' DAY)

-- 특정시간 기준으로 데이터 조회
SELECT * FROM 테이블명 AS OF TIMESTAMP(TO_DATE('20200605000000', 'YYYYMMDDHH24MISS'));
  

TIMESTAMP 데이터 생성, 수정 방법
-- select insert 를 이용하여 삭제된 데이터 처리
INSERT INTO 복구할 테이블명
SELECT  *  FROM 테이블명  AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) where 컬럼명 = '조건';

+ Recent posts