Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

HeeLee_DBA

Flashback 본문

Oracle

Flashback

HeeLee_ 2022. 5. 19. 13:49
반응형

Flashback으로
사용자에 의한 장애(DDL, DML)를 빠르게 복구 할 수있다.


-- undo_retention 파라미터 설정값 이상 지난 데이터는 Flashback으로 복구가 안됨
Oracle undo_retention Default 설정은 900s로 되어있다.

1. Drop Table 복구
--FLASHBACK TABLE ~ TO BEFORE DROP
위의 문법을 사용하여 Recycle Bin에서 객체를 복구할 수 있다.
선택적으로 RENAME TO 절을 사용하면 복구할 때 테이블의 이름을 변경하여 복구할 수 있다. 1-1. 테이블 생성 및 삭제

CREATE TABLE TEST(v1 varchar2(12), v2 date);
INSERT INTO TEST VALUES('현재시간',sysdate);
DROP TABLE TEST;


1-2. RECYCLEBIN 확인

SELECT * FROM RECYCLEBIN;


1-2. TEST 테이블 삭제 후 TEST2 RENAME 복구

FLASHBACK TABLE TEST TO BEFORE DROP RENAME TO TEST2;


1-3. 인덱스는 별도로 복구해야 된다.

ALTER INDEX "BIN$UofUBMjYnkDgUOABLqNFXg==$0" RENAME TO PK_TEST;

시스템에서 생성된 이름은 큰따옴표로 감싸줍니다.


2. FlashBack 이용한 데이터 복구(시점)
2-1. 30분 이전의 해당 테이블의 데이터 조회

SELECT * FROM TEST AS OF TIMESTAMP ( SYSTIMESTAMP - INTERVAL '30' MINUTE);


2-2. 3시간 이전의 해당 테이블의 데이터 조회

SELECT * FROM TEST AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '3' HOUR);


2-3. 1일 이전의 해당 테이블의 데이터 조회

SELECT * FROM TEST AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY);


2-4. 2분전의 데이터 복구

FLASHBACK TABLE TEST TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '2' MINUTE);


2-5. Row Movement 비활성화 오류시

ALTER TABLE TEST ENABLE ROW MOVEMENT;

반응형