티스토리 뷰
SCN(SYSTEM COMMIT NUMBER)
SCN(SYSTEM COMMIT NUMBER) :
COMMIT 할때 해당 트랜잭션에게 부여되는 고유번호를 관리하여 INSTANCE RECOVERY 나 RECOVER 명령 실행 때
ORACLE은 SCN 정보를 사용하여 DB에 문제가 있는지 없는지 확인. DML 문장 단위로 할당 되는것이 아니라, 트랙잭션 단위로 할당됨
구성단위 : SCN BASE (4 BYTES) + SCN WRAP (2 BYTES) 로 구성
16,384회를 발생시켜도 약 534년 정도 사용 (281,474,976,710,656) 534년 뒤에는 SCN WRAP 값이 하나씩 증가되어 사용되고, 다 사용되면 다시 0으로 RESET되어서 새로운 INCARNATION 으로 할당되어서 다시 시작
구현방식 :
SCN은 SEQUENCE 에서 발생되는것이 아니라 STEVE ADAMS가 개발한 "KCMGAS"라는 FUNCTION으로 구현됨
조회방법 :
발생된 내역 대한 시간정보 등 자세한 사항은 smon_scn_time 테이블 조회.
발생할 scn 정보는 DML 수행후 v$transaction 조회
기록장소 :
Control File Header : checkpoint, resetlogs, incomplete recover 발생 때
Data Blocks (Cache Layer) : Block Cleanout 시 마지막 SCN을 각 Block에 기록
Data Blocks (ITL Entries) : Data Block의 Transaction Layer안에 있는 ITL (Interested Transaction List) Entries 에 commit 된 SCN 정보 기록 (Delayed Block Cleanout)
Data File Headers : 모든 Data File Header에 마지막 checkpoint 발생시, Begin backup 수행때 기록되고 복구가 되었다면 마지막 SCN을 기록
Redo Records/ Log Buffer : Commit 이 수행되면 Commit Record에 SCN을 포함하여 저장 Rollback Segment (Undo Segment)와 Tablespace Header에 기록
'ORACLE DB > Oracle DB Admin' 카테고리의 다른 글
SHARED POOL, LARGE POOL, JAVA POOL, STREAMS POOL FIXED SGA (0) | 2013.03.11 |
---|---|
PGA(PROGRAM GLOBAL AREA) (0) | 2013.03.11 |
SCN(SYSTEM CHANGE NUMBER) (0) | 2013.03.11 |
CHECKPOINT (0) | 2013.03.11 |
COMMIT PARAMETER (0) | 2013.03.11 |