2013년 8월 12일 월요일

[오라클자바community]Oracle SGA 크기 결정

이번 글에서는 SGA의 크기를 늘여야 하는 경우 어떤 것들을 고려해야 하는지 알아 보도록 하죠…


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(신입사원채용무료교육, 오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷)   
우선 SGA를 확인 해야 하는데… 9i에서는 다음과 같이 하면 확인 할 수 있습니다.

SQL> conn / as sysdba
연결되었습니다.

SQL> show sga

//모든 division의 합
Total System Global Area  76618332 bytes 

//background process의 일반적인 정보들을 포함하며 사용자 data는 포함 안되며 보통 100K를 넘지 않습니다.
Fixed Size                  453212 bytes 

//initSID.ora 파일의 shared_pool_size + large_pool_size+java_pool_size+others의 합
Variable Size              62914560 bytes

//db_block_buffers * blocksize
Database Buffers          12582912 bytes

//SGA내의 online redo log buffer의 크기, initSID.ora 파일의 log_buffer값, 최소값은 db_block_size*4
Redo Buffers                667648 bytes



SGA의 크기는 9i 이전까지는 정적이었지만 9i이후에는 동적으로(alter system과 같은 명령으로 동적으로 값을 변경 가능) setting 할 수 있습니다. 동적 SGA를 결정짓는 parameter는 다음과 같습니다.

DB_BLOCK_SIZE
DB_CACHE_SIZE
SHARED_POOL_SIZE
LOG_BUFFER

결국 SGA는 DB_CACHE_SIZE + DB_KEEP_CACHE_SIZE + DB_RECYCLE_CACHE_SIZE + DB_nK_CACHE_SIZE + SHARED_POOL_SIZE + LARGE_POOL_SIZE + JAVA_POOL_SIZE + LOG_BUFFER + 1MB 정도로 구성 됩니다.

SHOW SGA를 했을 때 REDO BEFFERS 값과 inirSID.ora 파일의 LOG_BUFFER 파라미터 값이 다르다면 log_buffer의 값을 변경하여 일치하도록 하시구요, redo buffers의 최소값은 buffer size * 4 이상 되도록 설정 하세요.

또한 8.16 버전에서 SHOW SGA또는 V$SGA 내에서 “JAVA_POOL_SIZE”가 보이지 않으면 BUG이니 Patch 하도록 하세요…

8.15 버전에서는 “JAVA_POOL_SIZE”의 제한은 없고 기본값은 20M 입니다. initSID.ora 파일에서 이 값을 설정 시 1M 이상 지정 해야하며 1MB 미만인 경우엔 ora-01078 “failure in processing initialization parameters” 에러를 만날 수 있습니다.

8.16 버전에서는 “JAVA_POOL_SIZE”에 대해 제한이 있는데 기본값은 8.15와 마찬가지로 20M이며 initSID.ora에서 설정 시 32768 byte이상 설정 해야 합니다.
 

댓글 없음:

댓글 쓰기