본문 바로가기

오라클 ADMIN

SGA

SGA: System Grobal Area

한 개만 생성되어서 모든 사용자가 공유해서 사용하는 메모리 공간



SGA 생성

최초의 서버 프로세스가 파라미터 파일에 적혀있는 설정을 참고해 OS 커널에 공유 메모리 생성을 요청

서버 프로세스가 커널에게 요청하는 SGA 전체 크기는 파라미터 파일 안에서 SGA_MAX_SIZE로 결정


확인 방법은

SQL> show parameter sga_max_size ;


현재 사용중인 SGA 크기 확인 방법

SQL> show sga ;


Total System Globla Area --> 전체 SGA양 의미

Fixed Size --> background process 들이 사용 하는 공간으로 예약되어 있는 크기

Variable Size --> Shared Pool, Large Pool, Java Pool 로 사용되는 공간

Database Buffer --> DB Buffer Cache로 사용도리 공간

Redo Buffer --> Redo Log Buffer로 사용될 공간






SGA 특징

오라클 8i 까지는 Static SGA

--> SGA 내부 구성요소들의 크기를 필요에 따라서 변경했을 때 DB서버를 재부팅 해야 변경된 값이 적용


오라클 9i 부터는 Dynamic SGA

--> 변경 값을 DB 서버 재시작 없이 즉시 적용 가능. 단, Redo Log Buffer와 몇가지 파라미터는 제외






SGA 구성요소































※ 공유 메모리 관리를 위해 OS 에서 제공되는 사항들 


1. 세마포어 (Semaphore)

어떤 자원의 현재 사용 여부를 표현

하나의 블록에는 한번에 한개씩만 접속을 허용하게 관리를 하는 것

set/unset 값을 가지고 있음


세마포어 관련 주요 커널 파라미터들

SEMMSL: 하나의 세마포어 세트 당 세마포어의 최대 개수

SEMMNI: 세마포어 세트의 최대 개수

SEMMNS: 세마포어의 최대 개수

SEMOPM: 초당 호출 가능한 최대 세마포어 개수


확인 방법은 

$ ipcs - ls


2. 공유 메모리에 관한 주요 파라미터 및 내용


1) SHMMAX: 공유 메모리 세그먼트의 최대 크기

확인방법: 

# cat /proc/sys/kernel/shmmax

변경방법:

# echo "변경값" > /proc/sys/kernel/shmmax

또는

# sysctl -w kernel.shmmax=변경값

또는

/etc/sysctl.conf 파일에 커널 변수 값들을 추가, 영구적으로 적용 가능


2) SHMMNI: 공유 메모리 세그먼트의 최대 개수

확인방법:

# cat /proc/sys/kernel/shmmni


3) SHMALL: 공유 메모리의 최대 크기

확인방법:

# cat /proc/sys/kernel/shmall


4) SHMMIN: 당인 공유메모리 세그먼트의 최소크기


5) SHMSEG: 1개의 프로세스에 부여될 수 잇는 공유 메모리 세그먼트의 최대개수




'오라클 ADMIN' 카테고리의 다른 글

STARTUP / SHUTDOWN  (0) 2013.01.14
Parameter Files  (0) 2013.01.14
Process  (0) 2013.01.14
SQL 문장 실행 원리  (0) 2013.01.14
Oracle Architecture 오라클 서버 구조  (0) 2013.01.14