본문 바로가기

IT 스터디/Database

데이터 복구하기 (TIMESTAMP)

 

데이터를 실수로 DELETE하고, COMMIT을 했다

간혹 데이터를 실수로 삭제하고 커밋까지 해버려서 복구를 못하는 경우가 있다.

이러한 경우 지운 시간이 오래되지 않았다면 복구할 수 있는 방법이 있다.

바로 TIMESTAMP를 이용하는 방법이다.

 

TIMESTAMP 활용 예시
SELECT * FROM [테이블명] AS TIMESTAMP(SYSTIMESTAMP-INTERVAL '수치' [단위]);
SELECT * FROM USER_TABLE AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '30' MINUTE) WHERE ID = 'SUPER';

USER_TALBE 테이블을 30분 전 상태로 되돌려서 'SUPER' 라는 계정을 조회해오는 예시이다.

 

시간 옵션 

TIMESTAMP는 시간을 되돌리는 것과 같은 효과를 볼 수 있기 때문에 여러가지 형태의 시간으로 INTERVAL을 줄 수 있다.

옵션 단위
SECOND 초 단위
MINUTE 분 단위
HOUR 시간 단위
DAY 일 단위

 

주의할 점

너무 오랜시간이 지난 뒤의 테이블은 해당 방법으로 복구할 수가 없다..

그렇기 때문에 실수로 삭제를 하였다면 최대한 빠른 시간 내에 위 명령어를 사용하여 복구해야한다.

가장 좋은 것은 크기가 아주 크지 않다면, 미리 백업 테이블을 만들어두는 것이 좋다고 생각한다.

'IT 스터디 > Database' 카테고리의 다른 글

DDL, DML, DCL  (1) 2020.08.03