DB/ORACLE

DB 엔진 - System Global Area

jun.s.gi 2022. 12. 20. 18:13
728x90
SGA란?

System Global Area 또는 Shareable Global Area로 DB시점에서 공용으로 사용하는 메모리 공간이다.

공간은 5가지로 아래와 같이 구성되어 있다.

공간 설명
Shared Pool parshing 작업을 할 때 사용하는 공간입니다.
Database Buffer Cache DB의 접근하고자 하는 block을 가져와 쿼리문을 수행합니다.
Redo log Buffer Cache 바뀐 데이터의 before / after 데이터를 가지고있다 commit시 redo log file에 저장됩니다
Java Pool  
Large Pool  

 

 

Shared Pool은 Library cache와 Data Dictionary cache로 구성되어 있다.

Shared Pool 공간 설명
Library cache library cache의 context area에는 SQL, PL/SQL의 text, pared tree, Execution plan이 저장된다.
Data Dictionary cache  Disk에 존재하는 데이터 사전 block이 보관되는 곳이다.

 

 

 

DB 시점에서 Disk에는 아래와 같이 구성되어 있다.

DB 파일 내용 및 설명
System file 데이터 사전 정보
Data file a. 테이블, 객체 등등 실제 데이터가 저장되어 있는 곳,
b. commit해도 지연쓰기 때문에 바로 반영되지 않을 수도 있다.
Undo segment ( before image ) 이전 데이터 모습을 가지고 있는 파일이다.

circle 구조로 undo 데이터가 차곡차곡 쌓이는 것이 아니라 빈 곳을 찾아 삽입한다.

segment header block에는 Tr id와 UBA로 구성된 Transaction table이 존재한다.

commit시 액티브 상태의 undo data는 over write될 확률이 매우 높아짐
Redo log files ( before / after image ) : commit시 redo log buffer cache에 있던 데이터가 저장된다.
Archived Redo log file Archived 모드를 활성화 하면 Redo log file이 꽉 차거나 switch될 때마다 백그라운드 프로세스 ARCn이 redo log file을 Archived redo log file에 복사본 저장

 

 

윗단은 메모리 영역, 아랫단은 디스크 영역

중간에 백그라운드 프로세스를 통해 자료를 가져와 메모리에 올리거나 바뀐 내용을 디스크 파일에 반영한다.

백그라운드 프로세스는 server, DBWR, LGWR, SMON, PMON 등 여러가지가 있다.

SGA와 Background process를 포함해 Instance라고 말한다.

728x90