9i의 메모리자동관리방법
9i의 메모리 자동관리방법은 PGA만 자동관리 할 수 있습니다.
▶ PGA자동관리를 사용하기 위한 조건
- WORKAREA_SIZE_POLICY 파라미터를 AUTO로 설정
- PGA_AGGREGATE_TARGET 파라미터값을 0 이상으로 설정(PGA 전체 크기 할당)
▶수동관리일 경우
- WORKAREA_SIZE_POLICY 파라미터를 MANUAL로 설정
- sort_area_size, hash_area_size, bitmap_merge_area_size, create_bitmap_area_size 등 *_AREA_SIZE를 따로 설정
테스트
▶ 현재 PGA관리 상태를 확인(9i R2 환경에서 진행하였음)
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 25165824
SQL> show parameter workarea_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy string AUTO
SQL> select * from v$pgastat;
NAME VALUE UNIT
-------------------------------- ---------- ------------
aggregate PGA target parameter 25165824 bytes
(생략)
16 rows selected.
SQL> show parameter _AREA_SIZE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
bitmap_merge_area_size integer 1048576
create_bitmap_area_size integer 8388608
hash_area_size integer 131072
sort_area_size integer 65536
workarea_size_policy string AUTO
- 현재 PGA는 AUTO로 관리되고 있고 25165824byte가 할당되어 있음을 확인
▶PGA 사이즈를 80M로 변경
SQL> alter system set pga_aggregate_target = 80m;
System altered.
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 83886080
SQL> select * from v$pgastat;
NAME VALUE UNIT
------------------------------- ---------- ------------
aggregate PGA target parameter 83886080 bytes
…(생략)
- DB 재기동 없이 바로 적용된 모습을 볼 수 있습니다.
10g의 메모리 자동관리 방법(SGA) - ASMM
10g의 메모리 자동관리방법은 SGA를 자동관리 할 수 있습니다.
▶ ASMM(Automatic Shared Memory Management)
- 10g에서 처음도입하고 10g R2에서 더욱 향상된 메모리 자동관리 기법
- SGA의 구성요소 중 5가지
Shared_pool
DB_buffer_cache
Large_pool
Java_pool
Streams_pool
의 메모리 관리를 자동으로 수행함
- SGA_TARGET 파라미터만 셋팅하면 됩니다.
▶ ASMM을 사용하기 위한 조건
- STATISTICS_LEVEL 파라미터값이 typical 또는 ALL로 설정
- SGA_TARGET 파라미터값이 0보다 큰 값으로 설정(0은 사용하지 않음을 의미)
- SGA_MAX_SIZE 파라미터값을 SGA_TARGET 파라미터값과 동일하게 설정하는 것을 권장
- SGA_MAX_SIZE는 ASMM에서 사용할 최대값을 지정하는 것이며 이 값 내에서 SGA_TARGET이 이루어지게 됨
- 위에서 설명한 5가지 파라미터값(SHARED_POOL_SIZE, DB_CACHE_SIZE, JAVA_POOL_SIZE, LARGE_POOL_SIZE, STREAMS_POOL_SIZE)은 0으로 지정
테스트
▶ 현재 설정된 SGA_TARGET과 SGA_MAX_TARGET 메모리 확인 (10g R2 DB를 이용)
SQL> show sga
Total System Global Area 364904448 bytes
Fixed Size 2096312 bytes
Variable Size 155190088 bytes
Database Buffers 201326592 bytes
Redo Buffers 6291456 bytes
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 348M
sga_target big integer 348M
-현재 SGA_TARGET과 SGA_MAX_TARGET은 348M로 설정되어 있고 실제 SGA의 크기도 동일합니다.
SQL> show parameter pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
global_context_pool_size string
java_pool_size big integer 0
large_pool_size big integer 0
olap_page_pool_size big integer 0
shared_pool_size big integer 0
streams_pool_size big integer 0
SQL> show parameter db_cache_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 0
SQL> show parameter statistics_level
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL
- 5개의 파라미터 사이즈가 0이고 statistics_level 이 typical인 것을 확인하였다. 현재 이 DB는 ASMM이 적용 중인 DB입니다.
▶ SGA_TARGET과 SGA_MAX_TARGET을 수정
SQL> alter system set sga_max_size=1024m scope=spfile;
System altered.
SQL> alter system set sga_target=1024m scope=spfile;
System altered.
▶DB 재기동
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1073741824 bytes
Fixed Size 2101808 bytes
Variable Size 264244688 bytes
Database Buffers 801112064 bytes
Redo Buffers 6283264 bytes
Database mounted.
Database opened.
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1G
sga_target big integer 1G
- sga의 영역이 1024M 즉 1G로 변경된 것을 확인하였습니다.
11g의 메모리 자동관리 방법(SGA+PGA) - AMM
▶ AMM(Automatic Memory Management)
- 11g에서 등장한 관리기법. SGA+PGA를 자동으로 관리하는 방식
▶ AMM을 사용하기 위한 조건
- MEMORY_MAX_SIZE파라미터를 0 이상의 값으로 지정
- MEMORY_TARGET파라미터를 0 이상의 값으로 지정(MAX_SIZE와 동일하게 지정하는 것을 권장)
- SGA_TARGET이나 PGA_AGGREGATE_TARGET값은 0으로 지정
(만약 지정하면 오라클은 그 값을 최소값으로 인식)
테스트
▶ 현재 사이즈를 확인
SYS@ysbae> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 1584M
memory_target big integer 1584M
shared_memory_address integer 0
SYS@ysbae> show parameter pga_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0
SYS@ysbae> show parameter sga_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 0
-현재 1584M로 자동으로 관리중인 것을 확인하였고, 1G로 변경하겠습니다.
SYS@ysbae> alter system set memory_max_target = 1G scope=spfile;
System altered.
Elapsed: 00:00:00.00
SYS@ysbae> alter system set memory_target = 1G scope=spfile;
System altered.
SYS@ysbae> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@ysbae> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 671089544 bytes
Database Buffers 390070272 bytes
Redo Buffers 5517312 bytes
Database mounted.Database opened.
SYS@ysbae> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 1G
memory_target big integer 1G
shared_memory_address integer 0
파라미터 변경 후 재시작을 통해 변경할 수 있음을 확인하였습니다.
-적절한 메모리를 계산하여 사용하여야 하고, 시스템메모리 보다 많은 Memory_target에 메모리를 할당하면 아래와 같은 에러가 발생할 수 있습니다.
ORA-00845: MEMORY_TARGET not supported on this system
'Oracle > 운영' 카테고리의 다른 글
권한 부여 삭제(Grant)와 with admin option, with grant option (0) | 2020.02.21 |
---|---|
TABLE_REDEFINITION (0) | 2020.02.19 |
sga_target_advice (0) | 2020.02.13 |
NID Utility (0) | 2020.02.05 |
FRA 디렉토리가 물리적으로 용량이 full일 때 조치사항 (2) | 2020.01.07 |
댓글