반응형

ORA-04061 오류 분석 및 자주 발생하는 연관 에러코드
1️⃣ 오류 개요
ORA-04061: existing state of package has been invalidated 오류는 이미 세션에 로드되어 있던 패키지 또는 패키지 본문이 변경되거나 재컴파일되면서, 세션이 사용하던 버전이 더 이상 유효하지 않아 충돌이 발생할 때 나타나는 문제입니다.
주요 발생 환경:
- 패키지를 재컴파일한 직후
- 의존 객체가 INVALID 상태로 변경된 후 호출할 때
- RAC 환경에서 노드 간 패키지 버전 차이
- 장시간 유지된 세션이 오래된 패키지 버전을 사용 중일 때
2️⃣ 실제 오류 예시
ORA-04061: existing state of package has been invalidated
ORA-04065: not executed, altered or dropped
ORA-06508: PL/SQL: could not find program unit
ORA-04068: existing state of packages has been discarded
ORA-06512: at line XX
3️⃣ ORA-04061과 함께 자주 발생하는 연관 오류
✔ ORA-04065 — not executed, altered or dropped
ORA-04061 이후 가장 많이 동반되는 오류로, 패키지가 변경되었거나 실행할 수 없는 상태일 때 발생합니다.
ORA-04061 이후 가장 많이 동반되는 오류로, 패키지가 변경되었거나 실행할 수 없는 상태일 때 발생합니다.
✔ ORA-06508 — PL/SQL: could not find program unit
패키지가 INVALID이거나 메모리에서 내려갔지만 다시 LOAD되지 못한 상태일 때 발생합니다.
ORA-04061 → ORA-04065 → ORA-06508 순서로 연달아 발생하는 경우가 아주 흔합니다.
패키지가 INVALID이거나 메모리에서 내려갔지만 다시 LOAD되지 못한 상태일 때 발생합니다.
ORA-04061 → ORA-04065 → ORA-06508 순서로 연달아 발생하는 경우가 아주 흔합니다.
✔ ORA-04068 — existing state of packages has been discarded
세션이 보유하던 패키지 STATE가 버려졌음을 의미합니다.
ORA-04061과 강한 연관성을 가진 오류입니다.
세션이 보유하던 패키지 STATE가 버려졌음을 의미합니다.
ORA-04061과 강한 연관성을 가진 오류입니다.
✔ ORA-00604 — error occurred at recursive SQL level
내부 재컴파일 또는 Oracle 내부 재귀 SQL 수행 중 오류가 발생했을 때 상위 스택에서 함께 출력됩니다.
내부 재컴파일 또는 Oracle 내부 재귀 SQL 수행 중 오류가 발생했을 때 상위 스택에서 함께 출력됩니다.
✔ ORA-06512 — at line …
오류가 발생한 PL/SQL 라인의 위치를 알려주는 정보이며, 원인 오류는 대부분 ORA-04061 또는 ORA-06508입니다.
오류가 발생한 PL/SQL 라인의 위치를 알려주는 정보이며, 원인 오류는 대부분 ORA-04061 또는 ORA-06508입니다.
4️⃣ 발생 원인 분석
ORA-04061은 단일 원인보다 아래와 같은 “상태 불일치(STATE MISMATCH)” 상황이 복합적으로 발생할 때 나타납니다:
- 패키지 헤더/바디가 재컴파일됨
- 기존 세션이 패키지의 이전 버전을 계속 사용
- RAC 간 캐시된 패키지 버전 불일치
- 패키지 STATE를 포함한 세션 지속 환경(Persistent State)이 꼬인 경우
5️⃣ 조치 방법
- 패키지 및 의존 객체 전체 재컴파일
- 장시간 오픈된 세션 종료 또는 재연결
- RAC 환경일 경우 모든 노드에서 패키지 상태 정합성 확인
- DBMS_UTILITY.compile_schema 실행으로 전체 스키마 재컴파일 수행
- 패키지 내 글로벌 변수·STATE 영향도 점검
6️⃣ 사후관리 및 예방
- 운영 배포 시 패키지 재컴파일 직후 애플리케이션 세션 재연결 유도
- RAC 환경에서는 각 노드별 캐시 일관성 점검
- 패키지 STATE를 많이 사용하는 구조라면 Stateless 방식 개선 고려
- INVALID 객체 자동 모니터링 스크립트 활용
7️⃣ 기본 오류 대응 4단계
1) 외부 노출 여부 확인
2) 관련 역할/서비스 비활성화
3) 포트·연결 차단
4) 로그 모니터링 및 패턴 분석
2) 관련 역할/서비스 비활성화
3) 포트·연결 차단
4) 로그 모니터링 및 패턴 분석
8️⃣ WSUS 순서도
✔ 외부 노출 확인 → 역할 비활성화 → 포트 차단 → 로그 모니터링
반응형
LIST
'지식 공유 > DBMS' 카테고리의 다른 글
| [Oracle] ORA-01034, ORA-27101 오류 (0) | 2025.11.23 |
|---|---|
| [Oracle] CRS-1013 오류 (1) | 2025.11.23 |
| PostgreSQL repmgr 스플릿브레인 복구 (1) | 2025.11.19 |
| [ORACLE] ORA-00257 Archive Error & ORA-15041 RECO Disk Full 장애 (1) | 2025.11.17 |
| [ORACLE] 19c·23ai TDE란? 개념, 적용 방법, 활용 범위 (1) | 2025.11.17 |
