1. ASMM 정의 

10g 부터 SGA 구성 요소 ( Buffer Pool , Shared Pool , Large Pool , Java Pool) 메모리를 동적으로 조정가능할 수 있게되었으며 이를 ASMM 기능이라 한다. 
원래 Buffer Cache는 db_cache_size , Shared Pool 은 shared_pool_size , Large Pool은 large_pool_size 파라미터를 통해 변경되며 이들 파라미터를 변경하면 Oracle Instance는 재 기동이 되어야 함. 
ASMM은 재 기동없이 이들 메모리 값을 동적으로 변경가능하게 한다.  이를 위해 SGA_TARGET , SGA_MAX_TARGET 이라는 신 파라미터가 도입됨. 

2. ASMM 파라미터 할당
SGA_TARGET은 동적으로 조정될 수 있는 SGA값이며 , SGA_MAX_SIZE는 SGA가 최대로 할당 될 수 있는 값임.
만일 SGA_TARGET=250M , SGA_MAX_SIZE=400M 라면 SGA는 최소 250M부터 할당되어 최대 400M 까지 설정 가능함. 

SGA_TARGET의 경우 운영중 동적으로 변경가능하나 SGA_MAX_SIZE는 운영중 그 값을 변경할 수 없음. 

SGA_TARGET은 ALTER SYSTEM SET SGA_TARGET=400M SCOPE=BOTH 로  SPFILE 과 MEMORY에 동시 적용 가능.
그러나 SGA_MAX_SIZE 는 ALTER SYSTEM SET SGA_MAX_SIZE=500M SCOPE=SPFILE 로 SPFILE 파일에만 변경 적용 가능하며 운영중에는 변경이 불가능함. 

SGA_TARGET은 SGA_MAX_SIZE보다 커질 수 없기때문에 이와 같이 파라미터를  설정할 경우 DB는 기동되지 않음. pfile 을 통해 파라미터를  SGA_TARGET 값을 SGA_MAX_SIZE보다 작게 설정한 후 STARTUP PFILE로 기동 필요. 

SGA_TARGET을 특정값으로 설정하고 DB_CACHE_SIZE,SHARED_POOL_SIZE가 0 으로 설정하면 DB에서 자동으로 이들을 최적화된 값으로 재 설정해 줌.  DB_CACHE_SIZE등의 값이 미리 설정되어 있다면 DB는 최소한 설정된 해당 값이상으로 메모리를 할당함.

만일 DB_CACHE_SIZE + SHARED_POOL_SIZE + LARGE_POOL_SIZE + JAVA_POOL_SIZE 가 SGA_TARGET 또는 SGA_MAX_SIZE보다 크다면 ASMM 값을 무시하고 설정된 DB_CACHE_SIZE , SHARED_POOL_SIZE , LARGE_POOL_SIZE , JAVA_POOL_SIZE 값으로 메모리를 할당함. 

3. AMM 
11g 부터는 기존 SGA메모리 뿐만 아니라 서버 프로세스의 메모리도 동적으로 조정가능할 수 있게 함. 즉 PGA_AGGREGATE_TARGET 까지 합산된 총 메모리 조정. 

이를 위해 MEMORY_TARGET 과 MEMORY_MAX_TARGET 파라미터가 도입됨. 

4. AMM 파라미터 할당 
ASMM과 유사하게 MEMORY_TARGET은 동적으로 조정될 수 있는 메모리 값이며 , MEMORY_MAX_TARGET은 동적으로 최대 할당될 수 있는 메모리 값임.  MEMORY_TARGET=400M , MEMORY_MAX_TARGET=500M로 설정하면 SGA+PGA는 최소 400M에서 최대 500M 까지 변경 가능. 

ASMM과 마찬가지로 MEMORY_TARGET은 운영중 동적으로 변경 가능하나 MEMORY_MAX_TARGET은 운영중 그 값을 변경할 수 없으며 MEMORY_TARGET은 MEMORY_MAX_TARGET보다 반드시 같거나 작아야 함.  만일 MEMORY_TARGET 파라미터를 설정하지 않고 MEMORY_MAX_TARGET 값만 설정할 경우 MEMORY_TARGET은 MEMORY_MAX_TARGET 값과 동일하게 설정됨. 

AMM을 적용할 경우 SGA_TARGET 및 PGA_AGGREGATE_TARGET을 0으로 설정하며 DB가 자동으로 SGA 및 PGA메모리를 할당함. 만일 SGA_TARGET 또는 DB_CACHE_SIZE,SHARED_POOL 등의 파라미터가 설정되어 있으며 대신 이들 파라미터 설정값을 메모리로 할당함. 

SGA_MAX_SIZE + PGA_AGGREGATE_TARGET 이 MEMORY_MAX_SIZE 보다 클 경우 AMM은 무시하고 설정된 SGA_MAX_SIZE, PGA_AGGREGATE_TARGET 값을 사용함. 

+ Recent posts