728x90
SGA란?
System Global Area 또는 Shareable Global Area로 DB시점에서 공용으로 사용하는 메모리 공간이다.
공간은 5가지로 아래와 같이 구성되어 있다.
| 공간 | 설명 |
| Shared Pool | parshing 작업을 할 때 사용하는 공간입니다. |
| Database Buffer Cache | DB의 접근하고자 하는 block을 가져와 쿼리문을 수행합니다. |
| Redo log Buffer Cache | 바뀐 데이터의 트랜잭션 id, scn, 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 | ( 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
'DB > ORACLE' 카테고리의 다른 글
| DB 엔진 - 병행성과 일관성, Lock (0) | 2022.12.26 |
|---|---|
| DB 엔진 - 기동 순서, 복구, 백업 (0) | 2022.12.23 |
| DB 엔진 - Execution (0) | 2022.12.22 |
| DB 엔진 - Parsing, hash value (0) | 2022.12.20 |
| DB 엔진 - Tablespace, segment, extent, (header)block (0) | 2022.12.19 |