구로디지털단지역
오엔제이프로그래밍 실무학원
(Java ,
Oracle, SQL, Oracle Tuning, BackUP& Recovery, ASP.NET, C#, C#Network
,채용확정
무상교육)
Oracle 9i 부터는 SGA의 파라미터 값을 변경 후 DB를 중단 후 다시 시작하지 않아도 됩니다. 즉 다시 시작하지 않아도 파라미터 파일에
설정된 내용이 동적으로 반영 된다는 이야기 입니다. 물론 9i 이전에는 SGA등을 튜닝 후 결과를 보기 위해서는 DB를 내였다 다시 올려야
했었습니다…(저도 오라클7이나 8등을 쓸 때 그렇게 했던 기억이 납니다…)
Oracle9i의 새 특징중의 하나로 동적으로 SGA의 크기를 늘이거나 줄일 수 있도록 한 것을 Dynamic SGA 기능이라 부릅니다. 이 기능은 SGA를 구성하는 데이터베이스버퍼 캐시와 공유 풀의 크기를 동적으로 변화 시킬 수 있습니다.
그래뉼이란 가상 메모리 상의 연속된 공간으로 Oracle9i의 Dynamic SGA 기능에서 사용하는 메모리 할당 단위 입니다. 그래뉼의 단위는 sga_max_size에 의해 결정 되는데 128M 이하이면 4MB, 이상이면 16MB로 지정 됩니다. 만약 SGA_MAX_SIZE를 초과하면 “ORA-04003: Insufficient memory to grow pool” 오류가 발생 합니다.
동적으로 변경이 가능한 것은 Shared Pool과 DataBase Buffer Cache 이며 대용량 풀(Large Pool)은 그래뉼 단위로 증감하지만 자바 풀(Java Pool)과 함께 동적으로 그 크기를 변경할 수 없습니다.
오라클 9i부터, SGA의 크기는 동적으로 바꿀 수 있다고 했는데 이것은 다음 파라미터를 사용하여 SGA 크기를 인스턴스 실행 중에도 바꿀 수 있다는 것을 의미 합니다.
Buffer cache (DB_CACHE_SIZE) -- standard block의 cache 크기 (byte 단위)
Shared pool (SHARED _POOL_SIZE) -- shared SQL과 PL/SQL 문장을 저장하기 위한 공간의 크기 (byte 단위)
Large pool (LARGE_POOL_SIZE) (기본값 : 0 bytes) -- large pool의 크기로 large pool은 shared server의 session memory, message buffer에 대한 병렬 처리 등에 사용 되는 시스템 영역이며, disk I/O buffer의 backup 및 restore 처리에 의해 사용되기도 합니다.
LOG_BUFFER 파라미터는 Online Redo Entry를 Online Redo Log File로 기록하는 과정에서 buffering하는데 사용 됩니다. LOG_BUFFER 파라미터는 정적인 파라미터로 SGA의 적은 부문을 차지 하며, 데이터베이스를 SHUTDOWN 시킨 후 재 구동시킬 때만 init.ora 파일로 부터 변경된 값을 읽어 들여 반영이 됩니다.
MAX_SGA_SIZE 파라미터를 동적으로 바꿀 수는 없으나, SGA를 구성하는 부문의 크기를 동적으로 바꿀 수 있습니다. DB_CACHE_SIZE, SHARED_POOL_SIZE 크기를 데이터베이스 운영 중간에도 바꿀 수 있습니다.
SGA 상태를 보는 보기 위한 예는 아래와 같습니다.
SQL> select * from v$sgastat
2 where pool = 'shared pool';
POOL NAME BYTES
----------- -------------------------- ----------
shared pool enqueue 171860
shared pool KGK heap 3756
shared pool KQR M PO 256536
shared pool KQR S PO 58368
shared pool KQR S SO 1280
shared pool sessions 410720
shared pool sql area 3184160
shared pool 1M buffer 2098176
shared pool KGLS heap 600496
shared pool processes 144000
shared pool parameters 2088
shared pool free memory 42663776
shared pool PL/SQL DIANA 406692
shared pool FileOpenBlock 695504
shared pool PL/SQL MPCODE 44280
shared pool library cache 3676644
shared pool miscellaneous 4442940
shared pool MTTR advisory 8456
shared pool PLS non-lib hp 2068
shared pool joxs heap init 4220
shared pool kgl simulator 615532
shared pool sim memory hea 21164
shared pool table definiti 224
shared pool trigger defini 1700
shared pool trigger inform 1108
shared pool trigger source 160
shared pool Checkpoint queue 282304
shared pool VIRTUAL CIRCUITS 265160
shared pool dictionary cache 1610880
shared pool ksm_file2sga region 148652
shared pool KSXR receive buffers 1033000
shared pool character set object 369236
shared pool FileIdentificatonBlock 323292
shared pool KSXR large reply queue 166104
shared pool message pool freequeue 834752
shared pool KSXR pending messages que 841036
shared pool event statistics per sess 1718360
shared pool fixed allocation callback 180
38 개의 행이 선택되었습니다.
SQL> 2 where pool = 'java pool';
SQL> /
POOL NAME BYTES
----------- -------------------------- ----------
java pool free memory 33554432
SQL> 2 where pool = 'large pool'
SQL> /
POOL NAME BYTES
----------- -------------------------- ----------
large pool free memory 8388608
Oracle9i의 새 특징중의 하나로 동적으로 SGA의 크기를 늘이거나 줄일 수 있도록 한 것을 Dynamic SGA 기능이라 부릅니다. 이 기능은 SGA를 구성하는 데이터베이스버퍼 캐시와 공유 풀의 크기를 동적으로 변화 시킬 수 있습니다.
그래뉼이란 가상 메모리 상의 연속된 공간으로 Oracle9i의 Dynamic SGA 기능에서 사용하는 메모리 할당 단위 입니다. 그래뉼의 단위는 sga_max_size에 의해 결정 되는데 128M 이하이면 4MB, 이상이면 16MB로 지정 됩니다. 만약 SGA_MAX_SIZE를 초과하면 “ORA-04003: Insufficient memory to grow pool” 오류가 발생 합니다.
동적으로 변경이 가능한 것은 Shared Pool과 DataBase Buffer Cache 이며 대용량 풀(Large Pool)은 그래뉼 단위로 증감하지만 자바 풀(Java Pool)과 함께 동적으로 그 크기를 변경할 수 없습니다.
오라클 9i부터, SGA의 크기는 동적으로 바꿀 수 있다고 했는데 이것은 다음 파라미터를 사용하여 SGA 크기를 인스턴스 실행 중에도 바꿀 수 있다는 것을 의미 합니다.
Buffer cache (DB_CACHE_SIZE) -- standard block의 cache 크기 (byte 단위)
Shared pool (SHARED _POOL_SIZE) -- shared SQL과 PL/SQL 문장을 저장하기 위한 공간의 크기 (byte 단위)
Large pool (LARGE_POOL_SIZE) (기본값 : 0 bytes) -- large pool의 크기로 large pool은 shared server의 session memory, message buffer에 대한 병렬 처리 등에 사용 되는 시스템 영역이며, disk I/O buffer의 backup 및 restore 처리에 의해 사용되기도 합니다.
LOG_BUFFER 파라미터는 Online Redo Entry를 Online Redo Log File로 기록하는 과정에서 buffering하는데 사용 됩니다. LOG_BUFFER 파라미터는 정적인 파라미터로 SGA의 적은 부문을 차지 하며, 데이터베이스를 SHUTDOWN 시킨 후 재 구동시킬 때만 init.ora 파일로 부터 변경된 값을 읽어 들여 반영이 됩니다.
MAX_SGA_SIZE 파라미터를 동적으로 바꿀 수는 없으나, SGA를 구성하는 부문의 크기를 동적으로 바꿀 수 있습니다. DB_CACHE_SIZE, SHARED_POOL_SIZE 크기를 데이터베이스 운영 중간에도 바꿀 수 있습니다.
SGA 상태를 보는 보기 위한 예는 아래와 같습니다.
SQL> select * from v$sgastat
2 where pool = 'shared pool';
POOL NAME BYTES
----------- -------------------------- ----------
shared pool enqueue 171860
shared pool KGK heap 3756
shared pool KQR M PO 256536
shared pool KQR S PO 58368
shared pool KQR S SO 1280
shared pool sessions 410720
shared pool sql area 3184160
shared pool 1M buffer 2098176
shared pool KGLS heap 600496
shared pool processes 144000
shared pool parameters 2088
shared pool free memory 42663776
shared pool PL/SQL DIANA 406692
shared pool FileOpenBlock 695504
shared pool PL/SQL MPCODE 44280
shared pool library cache 3676644
shared pool miscellaneous 4442940
shared pool MTTR advisory 8456
shared pool PLS non-lib hp 2068
shared pool joxs heap init 4220
shared pool kgl simulator 615532
shared pool sim memory hea 21164
shared pool table definiti 224
shared pool trigger defini 1700
shared pool trigger inform 1108
shared pool trigger source 160
shared pool Checkpoint queue 282304
shared pool VIRTUAL CIRCUITS 265160
shared pool dictionary cache 1610880
shared pool ksm_file2sga region 148652
shared pool KSXR receive buffers 1033000
shared pool character set object 369236
shared pool FileIdentificatonBlock 323292
shared pool KSXR large reply queue 166104
shared pool message pool freequeue 834752
shared pool KSXR pending messages que 841036
shared pool event statistics per sess 1718360
shared pool fixed allocation callback 180
38 개의 행이 선택되었습니다.
SQL> 2 where pool = 'java pool';
SQL> /
POOL NAME BYTES
----------- -------------------------- ----------
java pool free memory 33554432
SQL> 2 where pool = 'large pool'
SQL> /
POOL NAME BYTES
----------- -------------------------- ----------
large pool free memory 8388608
댓글 없음:
댓글 쓰기