Oracle DB구조3 : Instance의 Background process
오라클 데이터베이스 구조
- 오라클DB는 크게 인스턴스(SGA 메모리구조와 백그라운드 프로세스와 데이터베이스로 나뉜다.
Background process
- Parameterfile에 optional background process를 키고 끄는 걸 명령한다
- block종류
- clean block : 디스크(= DB)에서 가져 온 block중에 안의 내용이 하나도 안 바뀐 것
- 안의 내용이 바뀌지 않았으므로 다시 디스크(= DB)에 저장할 필요가 없다.
- dirty block : 디스크(= DB)에서 가져 온 block중에 안의 내용을 덮어써서 변경된 것
- clean block : 디스크(= DB)에서 가져 온 block중에 안의 내용이 하나도 안 바뀐 것
PMON
- 프로세스 모니터 역할 : User process를 주시함
- User proc fail시(비정상적인 접속종료) 진행하던 트랜잭션 롤백 및 선점하고 있던 자원과 lock을 해제함
SMON
- 시스템 모니터 역할 : Instance를 주시함
- Instance fail(= DB 비정삭적인 종료) 후 DB 재시작될 때 DB동기화를 시켜줌
DBWR
DB buffer cache
의 Dirty block을 datafile로 기록함- Dirty block : 변경된 block
- 체크포인트 발생시 기록함, 오라클이 내부적으로 알아서 체크포인트를 발생시킴.
LGWR
- commit이 발생될 때
redo log buffer
의 로그정보(= redo data)를redo log file
로 기록함 DB buffer cache
에는 dirty block이 그대로 남아있음 -> dirty block을 모아서 한 꺼번에 체크포인트 발생시datafiles
로 기록됨. 그전까지는 계속db buffer cache
에 dirty block이 존재함.
CKPT
- 체크포인트 발생시 DBWR에게 알려줌
- DBWR기록 후
datafiles
헤더와controlfile
에 마지막 체크포인트 번호를 갱신함
ARC(option)
- Archive log mode인 경우 활성화
Rodelogfile
에 로그 스위치(logswitch)발생 시 offline 복사본( Archived log file)을 생성함.