오라클에서 사용하는 메모리
- 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
조회한 그래뉼 사이즈로 각 백그라운드 프로세스들이 메모리를 할당받아 사용함
각 백그라운드 프로세스의 실제 사용하는 내역을 조회
[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 |