Database

오라클에서 실수로 데이터나 테이블 삭제했을 경우

philo0407 2021. 3. 7. 14:40

 

● 데이터가 무언가의 이유로 유실된 경우

 

TIMESTAMP 란 것이 있다.

해당 테이블의 분별로 스냅샷을 찍어 놓은 것이라고 볼 수 있을 것 같다.

정말 분별로 해당테이블의 데이터를 스냅샷 찍어놓은 것이라.. 많은 저장 비용이 들 것 같다.

그래서 그런지 복구시간은 제한되어 있다.

 

우선 복구 이전에 이래저래 급한 상황이면

 

CREATE TABLE [백업할_테이블] 
AS SELECT * FROM [복구할 테이블] AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '30' MINUTE)

 

위 명령어를 사용해서 미리 백업 테이블을 만들어 놓자.

 

참고로 데이터 구조만 복사하고자 한다면

 

WHERE 1=2

 

위 코드를를 추가 조건으로 붙이면 된다.

 

 

테이블을 실수로 드랍한 경우

 

참고로 

테이블 DROP 등의 DDL 명령어는 DML과 달리 COMMIT / ROLBACK 없이 즉시 반영이다.

 

오라클 10g 이후 윈도우의 휴지통처럼 RECYCLEBIN 기능을 제공한다고 한다...

SELECT * FROM RECYCLEBIN ORDER BY DROPTIME DESC;
FLASHBACK TABLE COMMENT_ TO BEFORE DROP;

 

intro0517.tistory.com/179

 

오라클 테이블 DROP 후 복구하기

오라클 10g 부터는 윈도우의 휴지통과 같은 Recyclebin이 제공됩니다. DROP 한 테이블은 Recyclebin에 저장되며 복구가 가능합니다. 1. 휴지통에 있는 데이터 조회 - SELECT * FROM RECYCLEBIN - 삭제된 정보가 나

intro0517.tistory.com