티스토리 뷰

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함