Oracle/Architecture

선 로그 기법

타울 2012. 5. 15. 00:02

오라클에서는 대량의 대이터 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 기록한다.