Oracle DB구조3 : Instance의 Background process

Oracle DB구조3 : Instance의 Background process

오라클 데이터베이스 구조




Background process

  • Parameterfile에 optional background process를 키고 끄는 걸 명령한다
  • block종류
    • clean block : 디스크(= DB)에서 가져 온 block중에 안의 내용이 하나도 안 바뀐 것
      • 안의 내용이 바뀌지 않았으므로 다시 디스크(= DB)에 저장할 필요가 없다.
    • dirty block : 디스크(= DB)에서 가져 온 block중에 안의 내용을 덮어써서 변경된 것

https://www.relationaldbdesign.com/tuning-oracle-instance/module4/database-blocks.php




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)을 생성함.