행위

오라클 데이터 복구

DB CAFE

Dbcafe (토론 | 기여)님의 2018년 9월 14일 (금) 07:21 판 (새 문서: [Oracle| 오라클 데이터 복구 (TIMESTAMP) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 데이터 복구 하기 (delete로 삭제한 건 ) ] 입니...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
thumb_up 추천메뉴 바로가기


[Oracle| 오라클 데이터 복구 (TIMESTAMP)



안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 데이터 복구 하기 (delete로 삭제한 건 ) ] 입니다. :)







데이터를 실수로 삭제(delete, truncate는 불가) 하고 commit하였을때 실수로 지운다던지,

복원을 시켜야 한다던지 당황하고 멘붕이 왔던 경험이 많을 것이다.


이때 특정시간 또는 시점으로 되돌릴 수 있는 기능이 Oracle Flashback 기능이다.

이 플래시백 기능을 통해 as of timestamp 구문을 사용하여 삭제 전의 데이터를 조회하여 복구 할 수 있다.




▶ Flashback을 사용할 수 있는 조건



※ 설정


1. 자동 언두 관리 시스템을 사용해야 합니다. (UNDO_MANAGEMENT 파라미터를 AUTO로 설정)

  - UNDO_MANAGEMENT = AUTO


2. 이전의 어느 시점까지의 언두(UNDO)정보를 보유하여 Flashback Query를 수행할것인지 UNDO_RETENTION 파라미터를 설정해야 한다.

  - ALTER SYSTEM SET UNDO_RETENTION=1200



설정 확인 =>


show paramter undo;

NAME TYPE


VALUE


undo_management string auto auto_retention integer 1200 UNDOTBS1 SQL




※ 사용자


Flashback 기능을 이용하기 위해서 DBMS_FLASHBACK 패키지에 대한 EXECUTE권한이 있어야 합니다.



▶ Flashback을 사용할 수 있는 조건


하지만 모두 복구 할 수 있는 것은 아니다.


오라클은 데이터를 FLASHBACK이라는 임시 저장소에 가지고 있는다.

자료가 쌓이는 로그이다. 그렇기 때문에 일정시간 이내의 자료들은 어느정도 복구 가능하다.

시스템의 설정, 버퍼의 크기에 따라 복구 할 수 있는 시간은 제한적 이다. (오라클 서버의 메모리 세팅에 따라 달라진다.) 또한 제약조건이 추가되거나 컬림이 추가 된 경우, DROP한 후 PURGE한 경우 복원할 수 없다.



▶ 테이블 SELECT * FROM [TABLE 명] AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '수치' 단위) WHERE [조회조건]



▶ 프로시저 SELECT * FROM DBA_SOURCE AS OF TIMESTAMP (SYSTIMESTAMP-INTERVAL '수치' 단위) WHERE NAME = '프로시저이름'




▶ EX)

SELECT * FROM TEST_TABLE AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '20' MINUTE) WHERE COMPANY = 'SK'



테이블명과 조건을 입력하고 조회화면 20분 이전의 데이터가 조회된다.


단위는 SECOND, MINUTE, HOUR, DAY로 바꿔 쓸 수 있다.


오라클 9i(RELEASE 2이상) 이후부터 지원한다.


출처: http://goddaehee.tistory.com/56?category=275012 [갓대희의 작은공간]