
ORA-00020: 최대 프로세스 수 초과 오류 및 함께 자주 발생하는 Oracle 오류 모음
■ ORA-00020 오류 개요
오류 코드 ORA-00020: exceeded maximum number of processes specified in initialization parameter는 Oracle Database 인스턴스가 허용한 최대 프로세스 수(프로세스 상태 객체)를 모두 사용했을 때 발생한다.
예를 들어 로그에는 다음과 같은 메시지가 기록될 수 있다:
ORA-00020: maximum number of processes (300) exceeded
이 오류가 발생하면 데이터베이스에 새 연결이 불가능해지고, 작업이 중단될 수 있다. 실제 사례에서도 “process state objects are in use”라는 원인 설명이 나와 있다.
■ 원인
- INIT 파일 또는 SPFILE에 설정된
PROCESSES초기화 파라미터 값이 실제 요구치를 충족하지 못하는 경우. - 비정상 종료되었거나 해제되지 않은 세션/프로세스가 누적되어 리소스를 고갈시키는 경우 (“좀비 프로세스”).
- 애플리케이션 커넥션 풀이나 다중 작업이 짧은 시간에 대량으로 연결을 생성하면서 프로세스 수를 초과하는 경우.
■ 분석 및 대응 절차
대표적인 대응 절차는 다음과 같다:
-- 현재 설정 확인
SHOW PARAMETER processes;
SHOW PARAMETER sessions;
SHOW PARAMETER transactions;
-- 리소스 사용 현황 조회
SELECT * FROM v$resource_limit WHERE resource_name = 'processes';
-- 비활성/장기간 세션 조회 및 종료
SELECT s.sid, s.serial#, s.username, s.status
FROM v$session s
WHERE s.status = 'INACTIVE';
ALTER SYSTEM KILL SESSION 'sid,serial#';
-- 프로세스 수 증가
ALTER SYSTEM SET processes = 500 SCOPE=SPFILE;
-- 이후 DB 재시작 필요
SHUTDOWN IMMEDIATE;
STARTUP;
위 절차에서는 PROCESSES 값을 높인 후 재시작을 권장하며, 실행 전에는 세션(Session) 및 트랜잭션(Transactions) 파라미터와의 연계도 고려해야 한다.
■ 함께 자주 발생하는 오류
• ORA-00018: maximum number of sessions exceeded
이 오류는 SESSIONS 파라미터로 지정된 최대 동시 접속 세션 수를 초과했을 때 발생한다.
원인 및 대응 방식도 ORA-00020와 유사하며, PROCESSES 파라미터 값을 증가시키면 SESSIONS도 비례하여 증가해야 한다는 권장 공식이 제시되어 있다.
• ORA-01000: maximum open cursors exceeded
이 오류는 OPEN_CURSORS 파라미터로 설정된 한 세션이 열 수 있는 커서 수를 초과했을 때 발생한다.
주요 원인으로는 애플리케이션에서 커서를 닫지 않고 사용하거나, 커넥션 풀이 과도하게 커서 리소스를 소비하는 경우가 많다.
■ 요약 및 권고사항
ORA-00020 오차는 데이터베이스 인스턴스 리소스 한계를 의미한다. 단일 오류로 보지 않고, 세션·트랜잭션·커서 등 여러 관련 자원과 함께 분석해야 한다. 즉,
- 애플리케이션 연결 패턴을 검토하고, 연결이 해제되지 않고 남아 있는지 모니터링할 것
- 현재 및 잠재적 최대 수요를 기반으로
PROCESSES,SESSIONS,TRANSACTIONS,OPEN_CURSORS등의 파라미터 값을 설계할 것 - 긴급 대응으로 인한 세션 풀 조정, 비활성 세션 종료, 커넥션 풀 구조 변경 등을 고려할 것
- 파라미터 조정 후에는 인스턴스 재기동이 필요하거나, 변경된 파라미터가 반영된 버전을 확인할 것
위와 같은 조치를 통해 ORA-00020 및 연관 오류들에 대해 사전 대응체계를 마련함으로써 운영 중단 위험을 줄일 수 있다.
'경험 공유 > DBMS' 카테고리의 다른 글
| [PostgreSQL] HA 클러스터 인식 오류 (/etc/hosts 권한 문제) (1) | 2025.11.01 |
|---|---|
| [Oracle] OGG-01004 오류 조치 (1) | 2025.10.31 |
| [PostgreSQL] JSONB 변환 오류 및 CSV 인코딩 깨짐 해결 (1) | 2025.10.23 |
| [Oracle] Oracle ORA-01261, ORA-01262 오류 원인과 복구 방법 (0) | 2025.10.20 |
| [Oracle] Oracle ORA-03113, ORA-03114, ORA-24324 오류 원인과 복구 방법 (1) | 2025.10.20 |
