메뉴 건너뛰기

Korea Oracle User Group

Admin

Pga 메모리 설정관련 내용

우뽕 2021.03.05 15:38 조회 수 : 1787 추천:1

PGA_AGGREGATE_TARGET 설정기준을 정의 해 보려고 합니다.

버전이 올라가면서 위의 파라미터 말고 다른 값이 존재 합니다.

PGA_AGGREGATE_LIMT  설정값이 존재 합니다.


계산은 단순 합니다.

PGA_AGGREGATE_TARGET  * 3 = PGA_AGGREGATE_LIMT
최소 값 입니다.
-->   PGA_AGGREGATE_LIMT 설정값이 최신 버전에서는 * 3 으로 계산이 아니 됩니다.  * 2로 변경 되며  PGA_AGGREGATE_LIMT 설정값을따로 잡지 않아도 되는것으로 확인 되었습니다. 즉 PGA_AGGREGATE_LIMT 값만 설정 해 주시면 PGA_AGGREGATE_LIMT 계산을 하면서 올라 오지만 미리 PGA_AGGREGATE_LIMT reset 처리를 먼저 수행 되어야 합니다.   ( 23년 3월 기준으로 확인 완료)


그럼 PGA_AGGREGATE_TARGET 계산은 어떻게 할까요 ?

아래와 같이 계산식으로 산출 하시면 됩니다.

한개의 프로세스수 * 5120000 byte 입니다.

즉 DB 설치시 PROCESSES 수를 지정 하게 됩니다.


예로 ))

프로세스 수 : 30000

PGA_AGGREGATE_TARGET  = 505Mb
  == (5120000*3000)/1024/1024   = (1,464.84 byte *1024*1024)/2.9 = 529,653,816.4
    529,653,816.4/1024/1024 = 505.1172413793103
소수점 버림 하면 505MB 정도 나옵니다. 
 
여기 위에서 왜 2.9를 나누게 된 배경은  수많은 테스트에서 나온 결과 입니다. ( 엑셀을 이용해서 계산을 해 보고 나온 값으로 설명 불가. )
PGA_AGGREGATE_TARGET 값은 505mb 이상 잡으시면 됩니다.
단 PGA_AGGREGATE_LIMT = 1515Mb 설정값의 계산식은 반드시 PGA_AGGREGATE_TARGET * 3배를 잊지 마셔야 합니다.

PGA_AGGREGATE_LIMT 설정값이 부족 하면 ora-00093, ora-01078 로 인해 db 구동이 불가능 합니다.

반드시 spfile은 백업을 해 놓은 상태에서 수행 하시길 바랍니다.
 
중요한것은 위의 처럼 안 하셔도 됩니다. PGA_AGGREGATE_TARGET 임의 적으로 잡으신 후 PGA_AGGREGATE_LIMIT 설정시
PGA_AGGREGATE_TARGET * 3 으로 계산하여 넣으셔 됩니다. 
Oracle 버전이 올라 가면서 하나의 프로세스가 예전에는 3M 였으나 현재 버전까지 5M 로 계산 해 보시는 것이 좋을듯 하여 올려 봅니다 
 

테스트 장비  : 19c  기준으로 작성 
Exadata 도 가능 

 

위로