본문 바로가기

Oracle DataBase/Admin

데이터베이스 서버 구조

 

Oracle instance와 연관된 기본 메모리 구조

 

- SGA : 인스턴스가 시작될 때 할당 되며 모든 서버 및 백그라운드 프로세스에 의해 공유
              SGA 사용자 공동 메모리( 거의다 씀 ) SP(나머지), DBCACHE(98%), REDO(30M미만)
             100명이 접속하든 SGA는 1개가 할당

 

- PGA : 각 서버 프로세스에 대한 데이터 및 제어 정보를 포함하는 메모리 영역으로 각 서버 및
             백그라운드 프로세스가 전용으로 사용, 각 프로세스마다 하나의 PGA가 있습니다.
 PGA는 100명의 사용자가 접속하게 되는 경우 100개를 할당해줌
 
 
 
프로세스 구조
 
1. 유저 프로세스 : 데이터 베이스 유저가 Oracle 서버에 연결을 요청할 때 시작
2. 서버 프로세스 : Oracle instance에 연결하는 프로세스로, 유저가 세션을 설정할 때 시작
3. 백그라운드 프로세스 : Oracle instance가 시작될 때 시작
 
 
오라클 인스턴스 관리

 

 

Background Process

 

 

Process Monitor(PMON)

 

비정상 종료시 세션을 정리합니다. ( 1. rollback 2. lock해제 3.resource 해제 )
특정 서버 프로세스가 문제가 생길경우에 서버프로세스 관리자 PMON이 와서 정상복구해줌
정상적이지 않은 롤백 등등.
  
System Monitor(SMON)

 

비정상 종료 ( Instance Crash )
dirty < - > Cleans 롤백 되다가 안된 파일 등 정상적으로 해주는 작업
instance Recovery = SMON이 담당
 
 뒤에 다시 instance가 실행 되었을 때 commit 된 정보는 recovery 하고 uncommit 된 정보는 rollback을 합니다.

 

Roll forward -> DB Open -> Roll back 

 

Database Writer(DBWn) 

 

: 데이터베이스 버퍼 캐시에 저장된 dirty block을 주기적으로 disk data file에 기록합니다.
Pinned Block (사용중) 커밋 안된 블럭 - commit 안된 버퍼
dirty Block - 저장 안된 블럭 - commit 된 버퍼
free Block - 저장완료된 블럭
 
*기록하는 경우
1)check point event가 발생 했을 경우
2)free buffer가 부족한 경우
3)dirty block 수가 임계치에 도달했을 경우
 
LogWriter(LGWR)
redo log file에 redo log 항목을 기록합니다.
commit 실행시 redo 기록 삭제 
 
*기록하는 경우
1) commit 됐을 때
2) buffe가 1/3이상 찼을때
3) 1mb 이상 redo 발생시
4) DBWn 쓰기 직전에 작동
  
 
*Background Process의 SMON, PMON, DBWn, LGWR, CKPT 가 필수적인 요소인 이유는 이 중 하나라도 정지하게 되면 DB가 정상적으로 작동되지 않습니다

 

'Oracle DataBase > Admin' 카테고리의 다른 글

Undo 설명  (0) 2012.06.08
SQL문 처리 과정  (0) 2012.06.08
startup && shutdown  (0) 2012.06.08
데이터베이스 시작과 종료  (0) 2012.06.08
오라클 기본 구조( 요약 )  (0) 2012.06.08