OS환경 : Oracle Linux6.8(64bit)
DB 환경 : Oracle Database 11.2.0.3
에러 : OS에서 top로 보았을때 DIA0 프로세스의 메모리 사용량이 과도하게 높음
top 명령으로 확인 후 ps -ef 로 프로세스 확인
1 2 3 4 5 6 | $ top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3712 oracle 20 0 19g 153m 19m S 80.1 0.7 6:12.52 oracle $ ps -ef | grep 3712 oracle 3712 1 0 Feb01 ? 00:06:59 ora_dia0_ORCL |
가상 메모리(VIRT)가 과도하게 할당되어 있고 시간이 지날수록 더 증가함을 확인
현재 pga 할당량 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | SQL> col name for a25 col pname for a12 col "MegaBytes" for a10 set numwidth 6 select ss.sid, p.pid, 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='DIA0' order by ss.value / SID PID PNAME NAME MegaBytes ------ ------ ------------ ------------------------- ---------- 10 10 DIA0 session pga memory 825Mb 10 10 DIA0 session pga memory max 825Mb 2 rows selected. |
해결 방법 : 11.2.0.4버전으로 패치 또는 임시 패치 13377816 적용
패치를 못할 경우 임시 해결 방법은 피크 시간이 아닌 시간에 주기적으로 dia0 프로세스를 종료 해주는 방법이 있음
원인 : 오라클 자체 버그로 인한 문제
참조 : dia0 High Memory Usage (문서 ID 1376981.1)
'ORACLE > Trouble Shooting' 카테고리의 다른 글
ORA-01308: dictionary directory is not set (0) | 2019.02.15 |
---|---|
[FATAL] [DBT-11211] The Automatic Memory Management option is not allowed when the total physical memory is greater than 4GB (0) | 2019.02.13 |
오라클 bdump 경로에 생기는 cdmp 폴더 (0) | 2019.02.01 |
ORA-12012 , ORA-20001 AND ORA-06512 FROM ORA$AT_OS_OPT_SY_XXX (0) | 2019.01.30 |
Private strand flush not complete (2) | 2019.01.28 |