FLASHBACK - 3 - [ Database Level Flashback ]


데이터베이스 레벨의 Flashback 기술을 설명하기 전에 전통적인 방법에 비교해 보자면 백업 파일을 restore 하고 redo와 Archive File을 이용하여 복구를 한다. Database Level Flashback 은 restore 과정을 생략하고 Flashback log 를 이용하여 복구를 하게 되는 차이가 있다.
앞서 포스팅에서 다루었던 Row Level과 Table Level 은 특별한 설정이 없어도 되지만 Database Level Flashback 은 몇가지 설정을 해야 한다.

<출처 : 에몽이 :  http://gyh214.tistory.com/126 >

Redo, archive만 사용하는 불완전 복구와,

Database flashback의 차이

Redo, archive만 사용하는 불완전 복구

Database flashback(어느정도 redo도 사용)

복구 시 백업파일을 복원해야한다.

복원 불필요

복구 후 재차 복구 불가능(resetlog때문에)

복구 후 재채 복구 가능

Redo, archive파일사용

Flashback log파일사용

Archive 파일을 사용하기 위해서는

Database archivelog 이여야한다.

사용하기 위해서는 DB

Archivelog mode이고

추가로 flashback database mode

 

주의사항
- flashback log 는 Database snapshot 수준으로 남기므로 많은 용량을 필요로 한다.
- system Tablespace 내의 Table은 Flashback 으로 복구 불가능
- Control file 을 재생성시 Flashback Database 설정 초기화



전제조건
flashback log 설정 활성화
archive log mode
Flashback Database Mode 설정 활성화


환경 설정
Database Level 의 Flashback 을 사용하려면 아래와 같은 설정을 선행 해야 한다.

--
-- 단위 : 분
> alter system set db_flashback_retention_target=30 scope=spfile; -- 종료 (pfile 을 사용한다면 종료후 pfile 에 db_flashback_retention_target 을 설정한다.) SHUTDOWN IMMEDIATE; > startup mount; -- archive log 시작 > alter database archivelog; -- flashback on > alter database flashback on; -- database open > alter database open;
--

조회
--
select flashback_on from v$database;

FLASHBACK_ON
------------------
YES
--
시나리오

Syntax
< 출처 :  http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9011.htm >

1. 테이블 생성
2. 데이터 입력
3. 테이블 truncate
4. 복구 


--
> conn scott/tiger
Connected.
-- 1. 테이블 생성
>  create table t ( no number,name varchar2(10)) tablespace example;
Table created.

-- 2. 데이터 입력
> begin
    for i in 1..1000 loop
       insert into t values ( i , dbms_random.string('A', 9));
    end loop;
    commit;
    end;
    /

-- 3. Table Truncate
> truncate table t;
Table truncated.

-- 4. 복구 
-- sys 계정 로그인
> conn / as sysdba
-- database shutdown : 마운트 상태에서 해야한다.
> shutdown immediate;
> startup mount;
-- 시간은 알아서..
>flashback database to timestamp (systimestamp - interval '10' minute);
Flashback complete.
-- database 를 open 한다.
> alter database open resetlogs;
--

위와같이 시간기반 또는 SCN 기반으로 해도 된다.


참고 및 출처

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9011.htm  (ORACLE DOCS)
오라클 백업과 복구 정석 : 서진수 저 



'Oracle > 백업 & 복구 & 장애' 카테고리의 다른 글

BCV (Business Continuance Volume)  (0) 2012.06.08
RMAN ( Recovery Manager )  (2) 2012.04.06
FLASHBACK - 2 - [ Table Level Flashback ]  (0) 2012.04.05
FLASHBACK - 1 - [ Row Level Flashback ]  (0) 2012.04.05
datapump &  (0) 2012.04.04