데이터를 실수로 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 |
---|