oracle memory_max_target과 memory_target 의 상관 관계 0 2 3,521

by wooks [설치/설정] memory_max_target memory_target [2018.03.20 18:03:21]


오라클 문서를 보면 

MEMORY_TARGET specifies the Oracle system-wide usable memory. 

The database tunes memory to the MEMORY_TARGET value, reducing or enlarging the SGA and PGA as needed.

 

In a text-based initialization parameter file, if you omit MEMORY_MAX_TARGET and include a value for MEMORY_TARGET,

 then the database automatically sets MEMORY_MAX_TARGET to the value of MEMORY_TARGET. 

 

 If you omit the line for MEMORY_TARGET and include a value for MEMORY_MAX_TARGET, 

 the MEMORY_TARGET parameter defaults to zero. After startup, 

 

 you can then dynamically change MEMORY_TARGET to a nonzero value,  provided that it does not exceed the value of MEMORY_MAX_TARGET.

 

위와 같이 나와 있습니다.  

요약해보면,

1. MEMORY_MAX_TARGET을 0 으로 지정 하고, MEMORY_TARGET을 1GB 로 지정 시 

   MEMORY_MAX_TARGET은 자동으로 MEMORY_TARGET 값으로 지정이 된다.

 

2. MEMORY_MAX_TARGET을 5GB 로 지정 하고, MEMORY_TARGET을 0으로 지정 시 

   MEMORY_TARGET은 MEMORY_MAX_TARGET을 넘을 수 없으며, 그 한계 안에서 유동적으로 변경이 된다.

 

인데.. 2번 항목에서 궁금증이 있습니다.

 

저기서 말하는 유동적인 변경이 가능하다는 뜻이 5기가 까지 자동으로 메모리 사용량이 오른다는 것인지,

아니면 5기가가 넘지 않는 용량에서 작업자가 수동(alter)으로 변경을 해야한다는 것인지 모르겠습니다.

또한 MEMORY_MAX_TARGET을 5기가 MEMORY_TARGET을 2기가로 설정 했다고 하면, 

MEMORY는 2기가까지만 사용할 수 있다는 소리인 것인지, 아니면 기본 2기가로 설정이 되고, OVER 시에 자동으로 5기가 까지 변동이 된다는 뜻인지 알고 싶습니다.

(프로그램 상 자동으로 증가하는 것인지, 관리자가 직접 재설정을 해줘야 하는 것인지)

 

by 임상준 [2018.03.21 08:45:31]

memory target 옵션은 안 써봐서 정확한지는 모르겠지만, 보통 메모리 관련 타겟 값을 0 으로 세팅하는건(shared_pool_size) 오라클이 알아서 조정하라는 뜻으로 쓰입니다.

0 이 아닌 일정한 타겟 값을 주면 그 값으로 픽스되는걸로 알고 있고요..


by 그로밋 [2018.03.21 13:26:08]

MEMORY_MAX_TARGET을 5GB의 경우, 5GB가 넘지 않는 용량에서 작업자가 수동으로 ALTER를 사용해 dynamically (동적으로) 데이터베이스 restart없이 MEMORY_TARGET을 변경 할수 있다는 말입니다.

MEMORY_TARGET을 2GB로 설정 했다고 하면, 2GB안에서 자동으로 SGA과 PGA메모리를 조정해 줍니다.  2GB의 메모리가 데이터베이스 운영에 부족하더라도, 자동적으로 MEMORY_TARGET이 올라가지 않습니다.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입