선 로그 기법


오라클에서는 대량의 대이터 Insert 가 발생하게 되면 해당 블록을 찾아서 캐시에 올리고 다시 내려쓰는 작업을 해야 하기 때문에 느릴 수 밖에 없다. 그래서 오라클은 미리 리두로그에 기록하게 되는데 이를 선로그기법이라고 하며 빠른 commit 이라고 한다.

사용자는 데이터를 insert 하고  commit 을 하게 되면 데이터파일에는 기록이 되지 않았지만, 리두로그에 모두 기록되어 있으므로 commit 이 완료 될 수 있다.


1. 사용자가 insert 명령을 날림
2. 리두에 기록(선로그)
3. commit 날림
4. 컨트롤파일에 commit SCN 번호 기록됨 (commit 완료)



log switch 가 발생시 
1. ckpt 가 checkpoint 발생시킴
 - DBWn 에게 checkpointSCN 을 알려준다.
 - 바로 컨트롤 파일에 checkpointSCN 을 기록한다.
2. DBWn 은 checkpoint 가 발생하여 리두로그에 있는 데이터를 기록하기 시작한다.
- 데이터 파일에 데이터 내려쓰고 헤더에 checkpointSCN 기록한다.











'Oracle > Architecture' 카테고리의 다른 글

Block Cleanout  (0) 2012.05.15
Large Pool  (0) 2012.04.13
다중 Block SIZE  (0) 2012.04.12
SORT와 PGA_AGGREGATE_TARGET  (2) 2012.04.10
[Storage - 3] Segment  (0) 2012.01.27