본문 바로가기
DBMS

[ORACLE/TIBERO] 데이터 복구

by amoomar 2022. 11. 28.
반응형

 

TIMESTAMP를 활용하여 특정 시간대의 데이터로 테이블 데이터를 복구하는 방법에 대해 정리해보았다.

 

사용 조건

oracle 9i 이상부터 지원

DB의 설정에 따라서 시간이 오래지난 데이터는 TIMESTAMP로 복구가 불가능

 

사용 방법

단위는 초, 분, 시간, 날짜 로 지정해서 사용 가능

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

 

수정된 값, 현재와 비교

어떤 데이터가 변경이 되었는지 확인할 경우, 아래와 같이 비교하시면서 보면 확인하기가 편함.

현재 데이터와 비교할 데이터를 UNION ALL로 묶어서 확인 가능

-- GOODS_NM 이 선풍기인 데이터를 현재 데이터와 10분전 데이터 비교

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

-- 10분전에는 GOODS_QTY 가 77개 인것을 확인

 

특정 시간대의 데이터로 INSERT | UPDATE
-- select insert 를 이용하여 삭제된 데이터 처리
INSERT INTO TEMP_1018
SELECT  *  FROM TEMP_1018 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) where GOODS_NM = '선풍기';


-- select update 를 이용하여 변경된 데이터 처리
UPDATE TEMP_1018 a
SET 
	a.GOODS_QTY = (SELECT B.GOODS_QTY FROM TEMP_1018 B AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) where a.GOODS_NM = b.GOODS_NM and  b.GOODS_NM = '선풍기')
WHERE a.GOODS_NM ='선풍기'

 

 

 

 


 

해당 게시글은 아래 링크의 블로그 포스팅을 참고하였다.

https://lnsideout.tistory.com/entry/ORACLE-%EC%98%A4%EB%9D%BC%ED%81%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%B5%EA%B5%AC-TIMESTAMP-%EC%82%AC%EC%9A%A9%EB%B2%95

 

[ORACLE] 오라클 데이터 복구 TIMESTAMP 사용법

오라클(ORACLE) 데이터를 TIMESTAMP를 사용하여 복구 데이터베이스를 이용하다보면 실수로 데이터를 삭제하거나, 잘못 업데이트를 하는 경우가 있습니다. commit을 하기전이라면 상관이 없습니다. 하

lnsideout.tistory.com

 

반응형

'DBMS' 카테고리의 다른 글

[JOIN] JOIN문  (0) 2025.01.09
[TIBERO] TBstudio 설치하기 :TBadmin  (0) 2022.09.16
[ORACLE/TIBERO] 함수  (0) 2022.08.18
[DBeaver] Tibero 연결  (0) 2022.07.05
[MySQL] 설치 & 이관작업  (0) 2022.02.03