본문 바로가기
OraclE

flashback

by 타마마임팩트_쫀 2015. 4. 27.

Flashback이란?

사용자 실수(논리적 장래)에 의한 손상된 데이터를 Database의 크기와 상관없이 복구를 할수 있는기능이다


△ 9i : Flashback query 

△ 10g : Flashback Database 

          Flashback Drop 

          Flashback Version Query 

          Flashback Transaction Query 

          Flashback Table

△ 11g : Flashback Data Archive


※Oracle Flashback Feature는 10g Standard Edition에서는 지원하지 않는다. 



Flashback Technologies

 Flashback Operation

 Implementation

 Flashback Database

 Flashback logs + Redo logs

 Flashback Drop

 Recycle bin

 Flashback Version Query

 Undo

 Flashback Transaction Query

 Undo

 Flashback Table

 Undo

 Flashback Data Archive

 Flashback archive



Flashback Database를 수행하기 위한 3가지 구성요소 

1. Archive Mode 

Flashback Database 기능을 적용하기 위해서는 Archive Mode로 설정하여야 한다. 

2. Flashback Log File 

Flashback Log File은 오라클 Database를 구성하는 Block(변경되기 이전의 이미지 Block)을 저장하는 로그 파일로서 10g에서 새롭게 소개되고 있는 데이터베이스 복구영역(database recovery area)에 생성되어진다. 

기존의 redo log와의 차이점 

- redo log의 경우에는 archive할 수 있는 기능이 함께 제공되었지만, Flashback Log는 archive 기능이 따로 제공될 필요가 없다.(db_recovery_file_dest, db_recovery_file_dest_size) 

- Flashback Log의 경우에는 물리적인 database 복구에는 사용될수 없다는 점이다. 

3. RVWR 

Background Process Flashback Database 기능이 활성화 되어지면, rvwr이라는 background process가 시작된다.


자세한 내용은 첨부된 파일 참조


006_Flashback data archive_유현재.pdf



Flashback Version Query 이용시 사용하는 가상칼럼

○ versions_startscn : 트랜잭션이 COMMIT 시 SCN즉, 해당 데이터의 버전이 시작될 때 SCN 값

 versions_endscn : 해당 버젼의 유효성이 상실된 SCN

 versions_starttime : 트랜잭션이 COMMIT 시 datetime

 versions_endtime : 해당 버젼이 유효한 최종 datetime

 versions_XID : 해당 데이터의 버전을 생성한트랜잭션-ID

 versions_operation : 해당 트랜잭션의 DML 작업 종류

(U: update, D: delete, I: insert)



Flashback Data Archive

오라클 11g 부터는 마치 Online Redo log 를 Archive 하듯이 Undo Segment 에 있는 commit 된 내용을 특정 테이블 스페이스에 Archive 하여 영구적으로 저장하는 기능을 제공하는데 이것을 Flashback Data Archive(FBDA) 라고 한다. 

FBDA -> undo segment의 내용을 비정기적으로 특정 테이블 스페이스에 저장하는 백그라운드 프로세스



Flashback Data Archive 특징

1. FBDA가 undo segment를 모두 기록하기 전에는 해당 undo segment 재활용되지 않음

2. 최대 10개까지의 FBDA 백그라운드 프로세스 동시에 작업 - 대량의 DML 시 병목현상 방지

3. FBDA 프로세스는 sleep 하고 있다가 특정 시간이 되면 자동으로 활성화 되어 undo segment의 내용을 저장함

   undo의 양이 많을 경우 자주 내려쓰게 되며 기본값은 5분.

4. 해당 데이터는 자동 파티셔닝 되어 저장. 관리자라도 그 내용을 변경할수 없다.

5. Retention time 을 설정하여 데이터를 관리. Retention time 이 지난 데이터는 자동으로 삭제

6. Inset 되는 데이터는 이 기능 사용 안함



<지원하는 DDL>

- Adds | drops | renames | modifies a Column

- Adds | drops | renames a Constraint

- Drop | Truncates a Partition or Sub partition

- TRUNCATE TABLE

- RENAME TABLE

- PARTITION OR SUB PARTITION


<지원하지 않는 DDL>

- 파티션이나 서브파티션을 변경하는 ALTER TABLE 구문

- DROP TABLE


11g R1 과 11g R2에서 지원되는 DDL 차이

 

 11g R1

11g R2 

Truncate 

Alter table

Drop






'OraclE' 카테고리의 다른 글

Auditing Enhancements (aud$ 테이블 관리)  (0) 2016.04.11
dbms_scheduler 변경  (2) 2016.01.04
append 힌트 재대로 사용하시나요?  (0) 2015.03.30
object 변경시 dependency  (0) 2015.01.06
pid로 port 찾기 (lsof)  (0) 2014.09.17