장애 정보
| 장애 번호 | 701306a |
| 현상 | 실제 메모리 부족이 발생하지 않았음에도 시스템 로그에 과도한 메모리 요구 경고(Excessive memory demand)가 대량으로 출력된다. 또한 V$PGASTAT, V$SESSION 등 세션별 및 전체 PGA 사용량 수치가 실제 사용량과 다르게 표시될 수 있다. PE 프로세스가 재기동된 후에도 PE CTHR의 PGA 사용량이 초기화되지 않고 이전 값이 남아있다. |
| 원인 | 세션별 PGA 사용량 집계 과정에서 공유 메모리 할당기 사용량 데이터가 동시성 보호 없이 갱신되어 여러 스레드가 동시에 갱신할 경우 데이터 유실이 발생할 수 있다. 또한 프로세스 정리 경로에서 특정 스레드의 사용량 초기화 로직이 누락되어 있다. |
| 해결 | SYSTEM_ALLOC 사용량 집계 시 데이터 정합성을 보장하기 위해 원자적 연산을 적용한다. 경고 로그가 임계치 초과 상태에서도 무제한으로 생성되지 않도록 출력 간격을 제한한다. PE 프로세스 정리 시 PGA 사용량을 초기화하도록 처리한다. |
| 발생시점 | 26.08.21. |
| 패치필요버전 | 6FS07PS 7FS02PS |
패치 정보
| 패치명 | FS02PS_701306a |
| 메이저 버전 | 7 |
| 마이너 버전 | FS02PS |
| 버전 제목 | 세션별 pga 사용량 집계값이 실제와 다른 문제 수정 |
| 배포가능일 | 26.09.04. |
| 호환성 | • TAC 롤링 패치: 가능 • TSC 롤링 패치: 가능 • 백업 데이터 호환: 가능 • 프로토콜 호환: 가능 • 데이터 포맷 호환: 가능 |
| AP 영향도 | • 플랜 변경 여부: 아니오 • 결과 값 변경 여부: 아니오 • SQL 문법 변경 여부: 아니오 • 시스템 오브젝트 변경 여부: 아니오 • 기존 기능 변경 여부: 아니오 |
| 파라미터 | - |
| 우회방안 | _SYSTEMALLOC_CONSUMPTION_CHECK 파라미터 비활성화 SQL> ALTER SYSTEM SET _SYSTEMALLOC_CONSUMPTION_CHECK = N; |