2014. 10. 24. 14:42

오라클에서 사용하는 메모리 

- System Global Area(SGA)

- Program Global Area(PGA)



 

1. 8i 이전 버전에서의 메모리 관리기법

  • SGA, PGA 두 개의 메모리를 DBA가 수동으로 설정, 관리
  • SGA - 수동(static) , PGA - 수동 
  • static : 설정값 수정시 인스턴스를 재시작해야 적용

 

2. 9i 버전에서의 메모리 관리기법

  • SGA - 수동(dynamic) , PGA - 자동
  • DBA 'alter system set' 명령으로 특정 파라미터 값을 변경
  • dynamic : 설정값 수정시 인스턴스를 재시작 하지 않아도 즉시 적용 가능
  • 9.0.1 버전 : default buffer cache 값을 dynamic 하게 변경 가능
  • 9.0.2 버전 : shared pool, default buffer cache, large pool, java pol 값 변경 가능

, 모든 메모리의 합이 SGA_MAX_SIZE  설정된 값보다 작아야 함

-> 그렇지 않으면 사용자가 오라클으로 db 접속을 하지 못함

 

) shared pool 크기를 증가시키고 싶으면

     다른 파라미터의 값을 줄이고 난 다음 shared pool 의 크기를 늘려야 함

 

  • SGA 크기

     그래뉼(granule) :  오라클이 동적으로 메모리 할당시 쓰는 단위

  • 9i 

           - SGA 전체 크기가 128M 이하 : 1 그래뉼 = 4MB

           - SGA 전체 크기가 128M  초과 : 1 그래뉼 = 16MB         

  • PGA 수동모드 -> 자동관리모드로 변환 방법
    • WORKAREA_SZIE_POLICY 값을 Auto 로 변경 : 기본값
    • Manual 로 변경 : 8i 버전처럼 PGA 구성하는 파라미터값을 수동으로 사용가능

  • PGA_AGGREGATE_TARGET : PGA 전체 크기 지정 가능

실제 서버프로세스가 사용할 수 있는 최대 PGA 크기 조회(히든 파라미터, PGA_MAX_SIZE)

PGA 관련 hidden parameter 값을 조회하는 쿼리문


SYS>col ksppinm for a40

SYS>col ksppstvl for a40

SYS>SELECT a.ksppinm, b.ksppstvl

  2  FROM x$ksppi a, x$ksppsv b

  3  WHERE a.indx=b.indx

  4  AND a.ksppinm like '%_size';


KSPPINM                                  KSPPSTVL

---------------------------------------- ----------------------------------------

sga_max_size                             423624704

_NUMA_pool_size                        Not specified

_realfree_heap_max_size              32768

_pga_large_extent_size                 1048576

_uga_cga_large_extent_size           262144


... 중간 생략

_pga_max_size                            209715200  - 1 개의 프로세스가 사용할 수 있는 최대 pga 크기(byte)
     직렬 처리시 사용될 값 + 병렬 처리시 사용될 값
_smm_auto_min_io_size                 56
_smm_auto_max_io_size                248
_smm_min_size                            167
_smm_max_size                           33587        - 1개의 프로세스가 직렬처리시 사용할 수 있는 최대 pga(KB)
_smm_px_max_size                       83968       - 1개의 프로세스가 병렬처리시 사용할수 있는 pga(KB)
_smm_retain_size                           0
_smm_advice_log_size                    0

... 중간 생략

_asm_max_redo_buffer_size             2097152
_ash_size                                       1048618
_capture_buffer_size                         65536
max_dump_file_size                          unlimited
_trace_pool_size

167 rows selected.



SGA 총 크기 조회(11g)

SYS>SELECT name, bytes/1024/1024 MB
  2  FROM v$sgainfo
  3  WHERE name='Maximum SGA Size';

NAME                                     MB
-------------------------------- ----------
Maximum SGA Size                 403.089844



그래뉼 사이즈 조회

SQL> SELECT name, bytes/1024/1024 MB
  2  FROM v$sgainfo
  3  WHERE name='Granule Size';

NAME                                     MB
-------------------------------- ----------
Granule Size                              4


조회한 그래뉼 사이즈로 각 백그라운드 프로세스들이 메모리를 할당받아 사용함


각 백그라운드 프로세스의 실제 사용하는 내역을 조회


[oracle@localhost ~]$ pmap `pgrep -f pmon`

3732:   ora_pmon_testdb

00110000   2172K r-x--  /app/oracle/product/11g/lib/libnnz11.so

0032f000    184K rwx--  /app/oracle/product/11g/lib/libnnz11.so

0035d000      8K rwx--    [ anon ]

0035f000    120K r-x--  /app/oracle/product/11g/lib/libdbcfg11.so

0037d000      8K rwx--  /app/oracle/product/11g/lib/libdbcfg11.so


..... 중간 생략


38000000   4096K rwxs-  /dev/shm/ora_testdb_5341196_96

38400000   4096K rwxs-  /dev/shm/ora_testdb_5341196_97

38800000   4096K rwxs-  /dev/shm/ora_testdb_5341196_98

38c00000   4096K rwxs-  /dev/shm/ora_testdb_5341196_99

39000000   4096K rwxs-  /dev/shm/ora_testdb_5341196_100

39400000   4096K rwxs-  /dev/shm/ora_testdb_5341196_101

bf85d000     84K rwx--    [ stack ]

 total   578232K


/dev/shm/ora_ 메모리가 4MB씩 매핑되어 있는 것을 확인 할 수 있음


위 명령어는 다른 백그라운드의 개별 사용내역도 전부 출력됨


홑따옴표 아니고 키보드 왼쪽의 첫번째 ` 마크임



'DB > oralce' 카테고리의 다른 글

oracle의 시작단계  (0) 2014.10.26
3 oracle background processes  (0) 2014.10.24
6 redo log 관리하기  (0) 2014.10.21
4 oracle 시작하기와 종료하기  (0) 2014.10.20
오라클 관리실무  (0) 2014.10.17
Posted by 성장하는yw