memo/work 🫧

[Oracle] TIMESTAMP를 사용하여 데이터 복구하기

iiixyn 2022. 12. 8. 22:53

실수로 데이터를 삭제하거나 업데이트 했을 때[ commit 후

oracle의 timestamp를 이용하여 데이터를 복구할 수 있다.

 

**시간이 오래지난 데이터는 복구 불가.

 

-- 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 USER_TB AS OF TIMESTAMP(TO_DATE('20200605000000', 'YYYYMMDDHH24MISS'));

 

어떤 데이터가 변경이 되었는지 확인할 때

현재 데이터와 비교할 데이터를 UNION ALL로 묶어서 보기

 

-- 현재 데이터와 10분전 데이터 비교

SELECT * FROM TEMP_1018 where GOODS_NM = '' UNION ALL SELECT * FROM TEMP_1018 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) where GOODS_NM = '';

 

 

 

 

 

 

'memo > work 🫧' 카테고리의 다른 글

[jquery] html()  (0) 2023.01.31
[html/css] class의 띄어쓰기  (0) 2023.01.31
[Oracle] Data Dictionary Views  (0) 2023.01.22
[Oracle] comment 추가,변경하기  (0) 2023.01.22
[Oracle] tnsnames.ora 경로  (0) 2022.12.17