h1.2. 기본 아키텍처


① 데이터베이스 : 오리클에서는 디스크에 저장된 데이터 집합을 데이터베이스라 정의

② Cache      : 데이터를 임시로 저장해두는 장소를 말한다.

③ Buffer     : 컴퓨터의 주기억 장치와 주변의 장치사이에서 데이터를 주고 받을때, 둘 사이의 전송 속도차이를 해결하기 위하여
                  전송할 정보를 임시로 저장하는 고속 기억 장치 

④ Instance   : SGA + BACKGROUND PROCESS

⑤ SGA        : 하나의 오라클 데이터베이스 Instance의 데이터 및 제어 정보를 포함하는 공유 메모리 구조의 그룹

⑥ Background Process : PMON,SMON,DBWR,LGWR,CKPT를 말하며, Oracle Instance를 실행하기 위한 필수적인 프로세스

⑦ PGA        : 서버 프로세스, 백그라운드 프로세스를 위한 독립적인 메모리 공간


SGA(System Global Area)
 
① Data Buffer Cache 

- Datafile로 부터 읽어 들인 Data block의 copy를 유지하며, 모든 SQL은 이 공간에서 실행됨

- 사용자가 입력한 데이터를 파일에 저장하고 이를 다시 읽는 과정에서 거쳐가는 캐시 영역 , 가장 최근에 사용된 데이터블록을 저장하는 메모리 공간이다.

 

② Redo Log Buffer -database에 대한 모든 변경사항의 최근 history를 유지 

- Online Redo Log : Redo로그버퍼에 버퍼링 된 로그엔트리를 기록하는 파일, 최소 두개 이상의 파일로 구성 

- Archived Redo Log : Online Redo로그가 재사용되기 전에 다른 위치로 백업해 둔 파일


③ Shared Pool - Client로 부터 던져진 SQL이나 pl/sql block의 compiled version을 유지

- Library Cache : 사용자가 던진 SQL과 그 실행계획을 저장해 두는 캐시이다.

- Dictionary Cache : 오라클 Dictionary 정보를 저장해두는 캐시 영역으로 "Row Cache"라고도 불림


h5.Background Process


①SMON(System monitor): Instance recovery를 수행


②PMON(Process monitor): 비정상적으로 끊겨진 Client와 관련된 resource를 회수

 

③CKPT(Checkpoint):  Checkpoint가 완료될 때 마다 datafile과 control file에 동기화정보를 갱신함


④DBWR(Database Writer): 일정 조건이 충족 될때 마다 Database Buffer cache의 변경된 buffer(dirty buffer)들을 Data file에 내려 씀


⑤LGWR(Log Writer): Database의 모든 변경사항이 기록되고 있는 log buffer의 내용을 일정조건(ex> commit)이 충족될때 마다 
                       redo log file에 기록 함(옜날 것은 overwrite되고 있음)  --> recovery를 위해