본문 바로가기

공부/Database

ORACLE의 메모리 구조

 

[목차]

  1. Instance VS Database
  2. SGA vs PGA

 


 

1. Instance VS Database

 

오라클 서버는 Oracle Instance 와 Oracle Database로 구성되어 있다.

 

  • Database : 실제 데이터가 저장되는 Physical한 영역
  • Instance : 오라클 데이터베이스를 액세스하는 수단

- 실제 사용자가 데이터베이스에 접근하면 1개의 Instance가 할당된다.

- 프로그램의 Thread와 같은 개념

- Database는 물리적인 저장장치로 반영구적이나, Instance는 소멸성이다.

- SGA(시스템 글로벌 영역) 메모리 구조와 데이터베이스 관리에 사용되는 백그라운드 프로세스로 구성된다. 

- 실제 ORACLE에서는 DB Server에서 Database가 시작되면 SGA라는 공유 메모리 영역을 할당하고, 여러가지 ORACLE 데몬을 시작한다. 이와 같이 SGA와 ORACLE프로세스가 결합한 것을 ORACLE Instance라고 한다. 

- 각 instance에는 이름(SID)이 설정되어 있다.

 

 

 

 

2. SGA vs PGA

 

오라클 메모리 구조 : SGA + PGA

 

  • SGA (System Global Area)

- 여러 프로세스가 동시에 접근하는 메모리 영역 (공유 메모리)

- 모든 DB서버 프로세스가 공유하는 메모리 영역

- 모든 사용자가 공유하여 사용하는 메모리 영역

- 공유풀(라이브러리 캐시 + 데이터 사전 캐시), 데이터버퍼캐시, 리두로그버퍼 등으로 구성됨

- SGA가 클수록 HDD 사용 필요성이 줄어들게 되므로 성능이 향상됨. (일종의 Cache)

 

- 공유풀 : 해석된 SQL문/ access가 많은 데이터

- 데이터버퍼캐시 : access가 많은 유저 데이터가 캐시되는 버퍼

- 리두로그버퍼 : 데이타베이스에 실행된 변경이 기억됨

 

  • PGA(Program Global Area) 

- 데이터베이스에 접속하는 모든 유저에게 할당되는 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메모리 영역 

- 사용자마다 공유하지 않고 개별적으로 사용 (비공유메모리)

- 인스턴스의 메모리 영역

- 사용자마다 개별적으로 할당되는 메모리 영역

- 정렬, 셰션, 커서, 변수에 관한 정보를 저장하는 공간

- 개별 서버 프로세스가 가지는 전용 메모리 영역

 

 

'공부 > Database' 카테고리의 다른 글

ORACLE 백그라운드 프로세스  (0) 2022.03.27