행위

"FLASHBACK DATABASE LEVEL"의 두 판 사이의 차이

DB CAFE

(새 문서: == FLASHBACK DATABASE LEVEL == # 전통적인 백업 방법은 파일을 restore 하고 redo와 Archive File을 이용하여 복구 # Database Level Flashback 은 restore 과정을...)
 
 
(같은 사용자의 중간 판 3개는 보이지 않습니다)
61번째 줄: 61번째 줄:
 
https://t1.daumcdn.net/cfile/tistory/1977D1394FA32D6C2B
 
https://t1.daumcdn.net/cfile/tistory/1977D1394FA32D6C2B
 
=== 시나리오 ===
 
=== 시나리오 ===
1. 테이블 생성
+
{{틀:고지상자
2. 데이터 입력
+
|제목 = 순서
3. 테이블 truncate
+
|내용 =# 테이블 생성
4. 복구  
+
# 데이터 입력
 +
# 테이블 truncate
 +
# 복구  
 +
}}
 +
 
  
 
<source lang=sql>
 
<source lang=sql>
103번째 줄: 107번째 줄:
 
SQL> alter database open resetlogs;
 
SQL> alter database open resetlogs;
 
</source>
 
</source>
 +
[[Category:oracle]]

2021년 11월 12일 (금) 09:42 기준 최신판

thumb_up 추천메뉴 바로가기


1 FLASHBACK DATABASE LEVEL[편집]

  1. 전통적인 백업 방법은 파일을 restore 하고 redo와 Archive File을 이용하여 복구
  2. Database Level Flashback 은 restore 과정을 생략하고 Flashback log 를 이용하여 복구 하는 것이 차이점

1.1 전통적인 복구 VS DATABASE FLASHBACK[편집]

REDO,ARCHIVE파일 복구 DATABASE FLASHBACK 복구
Redo, archive만 사용하는 불완전 복구 Database flashback(어느정도 redo도 사용)
복구 시 백업파일을 복원해야한다. 복원 불필요
복구 후 재차 복구 불가능(resetlog때문에) 복구 후 재차 복구 가능
Redo, archive파일사용 Flashback log파일사용
Database archivelog 모드만 가능 Archivelog mode 이고 flashback database mode

1.1.1 주의사항[편집]

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

1.2 DATABASE FLASHBACK 전제조건[편집]

  1. flashback log 설정 활성화
  2. archive log mode
  3. Flashback Database Mode 설정 활성화


1.3 DB 환경 설정[편집]

  1. Database Level 의 Flashback 을 사용하려면 아래와 같은 설정을 선행 해야 한다.
-- db_flashback_retention_target 분 설정 
SQL> alter system set db_flashback_retention_target=30 scope=spfile;

-- 종료 (pfile 을 사용한다면 종료후 pfile 에 db_flashback_retention_target 을 설정한다.)
SQL>SHUTDOWN  IMMEDIATE;

-- MOUNT 상태로 시작 
SQL> startup mount;

-- archive log 시작
SQL> alter database archivelog;

-- flashback on
SQL> alter database flashback on;

-- database open
SQL> alter database open;

-- flashback 상태 조회
select flashback_on from v$database;

FLASHBACK_ON
------------------
YES

https://t1.daumcdn.net/cfile/tistory/1977D1394FA32D6C2B

1.4 시나리오[편집]

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



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

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

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

-- 4. 복구 

-- sys 계정 로그인 (database shutdown 하기 위해)
SQL> conn / as sysdba

-- database shutdown  
SQL> shutdown immediate;

-- 마운트 상태에서 복구 
SQL> startup mount;

-- 시간은 알아서..
SQL>flashback database to timestamp (systimestamp - interval '10' minute);

Flashback complete.

-- database 를 open 한다.
SQL> alter database open resetlogs;