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