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 |
X |
O |
Alter table |
X |
O |
Drop |
X |
X |
'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 |