문서의 이전 판입니다!
Oracle SGA(System Global Area)
초기화 파라메터
SGA_MAX_SIZE
SGA_MAX_SIZE | SGA 전체의 최대크기, SGA 관련파라메터들은 SGA_MAX_SIZE 한도 내에서 크기를 변경할 수 있다.
ALTER SYSTEM 명령으로 시스템 재시작없이 동적으로 변경할 수 있다.
Dynamic SGA |
Oracle 10g에서 Dynamic SGA를 사용할 수 있는 파라메터
DB_CACHE_SIZE
LOG_BUFFER
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE
SGA 파라메터 크기 변경
SGA 파라메터의 크기를 늘려주기 위해서는 필요한 만큼의 Free Granule이 존재해야만 하며,
현재 사용하고 있는 SGA의 크기가 SGA_MAX_SIZE보다 작어야 한다.
ALTER SYSTEM SET DB_CACHE_SIZE=1024M SCOPE=SPFILE;
Granule
Granule은 가상 메모리 상의 연속된 공간으로 , Dynamic SGA 모델에서 할당할 수 있는 최소 단위 이다.
Startup SGA 설명
SQL> show sga
Total System Global Area 926941184 bytes
Fixed Size 1222648 bytes
Variable Size 243271688 bytes
Database Buffers 675282944 bytes
Redo Buffers 7163904 bytes
Total System Global Area | SGA를 구성하는 영역크기의 합계로 SGA_MAX_SIZE 파라메터로부터 영향을 받는다 |
Fixed Size | 데이터베이스나 인스턴스의 상태를 저장하는 영역으로, 백그라운드 프로세스가 액세스하는 영역이다 |
Variable Size | 이 영역의 크기는 SHARED_POOL_SIZE, LARGE_POOL_SIZE, JAVA_POOL_SIZE 파라메터로부터 영향을 받는다 |
Database Buffers | 데이터파일로 부터 읽어들인 데이터 블록 내용을 저장하는 영역으로 DB_CACHE_SIZE 파라메터의 영향을 받는다 |
Redo Buffers | 데이터베이스에 가해진 모든 변경사항에 대한 내역을 저장하는 Redo Log Buffer의 크기를 LOG_BUFFER 파라메터로부터 영향을 받는다 |
ASMM
ASMM은 Automatic Shared Memory Management(자동 공유 메모리 관리)의 약자이다.
데이타베이스가 동작하는 동안 여러 메모리 풀의 크기를 자동으로 조정하여 필요한 경우 메모리를 할당하거나 해제하는 역할을 담당합니다.
ASMM을 사용하기 위해서는 SGA_TARGET 파라메터를 0보다 크게 설정하면 됩니다.
shared pool, buffer cache, large pool, java pool에 대한 크기를 자동으로 관리하여 줍니다.
SGA_TARGET 값은 SGA_MAX_SIZE 보다 크게 설정할 수 없습니다.
SGA_MAX_SIZE >= SGA_TARGET
ALTER SYSTEM 명령으로 SGA_TARGET 값을 설정한 후, 모든 자동 조절 풀의 매개변수를 0으로 설정합니다.
DB_CACHE_SIZE나 SHARED_POOL_SIZE를 0으로 설정하지 않는다면 해당 값이 하한 임계 값이 됩니다.
ALTER SYSTEM SET SGA_TARGET=1024M SCOPE=BOTH;
ALTER SYSTEM SET DB_CACHE_SIZE=0;
ALTER SYSTEM SET SHARED_POOL_SIZE=0;
Database Buffer Cache
Redo Log Buffer
Shared Pool
Large Pool
Java Pool
Streams Pool
10g 부터 나타난 풀 개념이다.
오라클 스트림(다른 DB로 데이터 전달)에서 사용하는 메모리 영역으로 STREAMS_POOL_SIZE 파라메터로 크기를 설정한다.