데이터베이스 레벨의 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 |