[목차]
- Instance VS Database
- 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 |
---|