PGA_AGGREGATE_TARGET 설정기준을 정의 해 보려고 합니다.
버전이 올라가면서 위의 파라미터 말고 다른 값이 존재 합니다.
PGA_AGGREGATE_LIMT 설정값이 존재 합니다.
계산은 단순 합니다.
PGA_AGGREGATE_TARGET * 3 = PGA_AGGREGATE_LIMT
최소 값 입니다.
버전이 올라가면서 위의 파라미터 말고 다른 값이 존재 합니다.
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 도 가능
좋은 내용 감사합니다.~~~