-
[PGA] ORA-04036 관리Oracle 2022. 9. 13. 14:11
KILL SESSION for sid=(1996, 47010): Reason = alter system kill session Mode = KILL HARD SAFE -/-/- Requestor = USER (orapid = 195, ospid = 18183, inst = 2) Owner = Process: DIA0 (orapid = 21, ospid = 19193) Result = ORA-0
1. PGA 조회
1.1 V$PGASTAT
SELECT * FROM V$PGASTAT; The output of this query might look like the following: NAME VALUE UNIT -------------------------------------------------------- ---------- ------------ aggregate PGA target parameter 41156608 bytes aggregate PGA auto target 21823488 bytes global memory bound 2057216 bytes total PGA inuse 16899072 bytes total PGA allocated 35014656 bytes maximum PGA allocated 136795136 bytes total freeable PGA memory 524288 bytes PGA memory freed back to OS 1713242112 bytes total PGA used for auto workareas 0 bytes maximum PGA used for auto workareas 2383872 bytes total PGA used for manual workareas 0 bytes maximum PGA used for manual workareas 8470528 bytes over allocation count 291 bytes processed 2124600320 bytes extra bytes read/written 39949312 bytes cache hit percentage 98.15 percent
타겟값 조정
alter system set pga_aggregate_target = 3500M;
1.2
v $process 에 pga 의 할당 사용 크기 가 기록
select * from v$process where 1=1 order by pga_used_mem desc ;
1.3
# su - grid $ sqlplus / as sysdba SQL> set lines 200; set pages 200; column name format a25; column pname format a12; column "MegaBytes" format a10; set numwidth 6; select s.sid, s.serial#,p.pid, p.spid,p.pname, sn.name, round(ss.value/(1024 *1024))||'Mb' "MegaBytes" from v$sesstat ss, v$statname sn, v$session s, v$process p where s.paddr = p.addr and sn.statistic# = ss.statistic# and s.sid = ss.sid and sn.name in ('session pga memory' , 'session pga memory max') and p.pname like 'DIA%' order by ss.value / SID SERIAL# PID SPID PNAME NAME MegaBytes ------ ------- ------ ------------------------ ------------ ------------------------- ---------- 1141 3837 12 8268 DIAG session pga memory 8Mb 1141 3837 12 8268 DIAG session pga memory max 8Mb 1996 32053 21 8285 DIA0 session pga memory 12000Mb 1996 32053 21 8285 DIA0 session pga memory max 12000Mb
1.4
DIA 0 session 을 죽 이면 프로 세 스 를 다시 시작 합 니 다.
Process termination requested for pid 19193 [source = rdbms], [info = 2] [request issued by pid: 18183, uid: 10001] 2019-06-25T10:07:16.996820+08:00 KILL SESSION for sid=(1996, 47010): Reason = alter system kill session Mode = KILL HARD SAFE -/-/- Requestor = USER (orapid = 195, ospid = 18183, inst = 2) Owner = Process: DIA0 (orapid = 21, ospid = 19193) Result = ORA-0
1.5
os 메모리 도 풀림
# vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 558604 173596 10071120 0 0 81 48 8683 13364 0 0 99 0 0 0 0 0 557968 173596 10071120 0 0 145 49 8070 13185 0 0 99 0 0 3 0 0 557320 173596 10071120 0 0 81 160 8428 13220 0 0 99 0 0 1 0 0 480344 173596 10071224 0 0 97 173 10465 13905 2 1 97 0 0 2 0 0 541276 173596 10071176 0 0 81 252 21906 33637 5 1 94 0 0 4 0 0 450152 173596 10071240 0 0 81 49 16280 23034 4 1 95 0 0 2 0 0 5122416 173596 10069208 0 0 81 472 23653 26264 4 2 94 0 0 2 0 0 12127104 173596 10069512 0 0 93 493 35441 35639 5 3 92 0 0 3 0 0 12032968 173596 10069540 0 0 81 48 15058 22644 4 1 95 0 0 1 0 0 12082336 173596 10069508 0 0 97 3457 18977 27614 5 1 94 0 0 5 0 0 11993120 173596 10070012 0 0 589 48 21483 34140 5 1 93 0 0 1 0 0 12032256 173596 10070016 0 0 81 781 11349 15391 3 1 97 0 0