2026년 09월 12일 | DBMS Error 가이드
이 글에서 다루는 내용
ORA-12528 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.
ORA-12528 TNS: listener: all appropriate instances are blocking new connections 는?
ORA-12528은 Oracle 리스너(Listener)가 클라이언트의 접속 요청을 받았지만, 해당 요청을 처리할 수 있는 인스턴스가 없을 때 발생하는 에러입니다. 주로 데이터베이스가 시작 중(STARTUP 단계)이거나, 특정 제한 모드(RESTRICTED MODE)로 운영 중이거나, 또는 인스턴스가 새로운 연결을 의도적으로 차단하고 있는 상태일 때 나타납니다. 30년 현장 경험상 이 에러는 야간 배치 작업 중 DB 재기동, 패치 적용, 또는 긴급 유지보수 작업 시 가장 빈번하게 발생하며, 운영 중 갑작스러운 서비스 장애로 이어질 수 있어 신속한 대응이 중요합니다.
주요 발생 원인
1. 데이터베이스가 RESTRICTED MODE(제한 모드)로 운영 중인 경우
데이터베이스가 ALTER SYSTEM ENABLE RESTRICTED SESSION 명령으로 제한 모드로 전환된 경우, DBA 권한(RESTRICTED SESSION 권한)을 가진 사용자만 접속할 수 있습니다. 일반 애플리케이션 계정이나 사용자들은 모두 ORA-12528을 경험하게 되며, 이 상태에서는 리스너가 신규 연결 요청 자체를 차단하게 됩니다.
2. 데이터베이스 인스턴스가 시작 중(STARTUP/MOUNT 단계)인 경우
DB 재기동, 패치 적용 후 시작, RAC 환경에서 특정 노드 재시작 등의 상황에서 인스턴스가 아직 OPEN 상태가 아닌 경우 리스너는 해당 인스턴스로의 연결을 차단합니다. 인스턴스가 NOMOUNT 또는 MOUNT 단계에 머물러 있으면 일반 클라이언트 연결은 불가능하며, 이 상태가 장시간 지속될 경우 서비스 전체가 마비될 수 있습니다.
3. 리스너와 인스턴스 간 등록(Registration) 문제 또는 인스턴스 과부하
Oracle 인스턴스는 PMON(Process Monitor) 프로세스를 통해 리스너에 주기적으로 자신의 상태를 등록합니다. 인스턴스에 과부하가 걸리거나 PMON이 정상적으로 리스너에 상태를 등록하지 못하면 리스너가 인스턴스를 “차단 중” 상태로 판단하여 신규 연결을 거부합니다. 특히 공유 서버(Shared Server) 환경이나 Connection Pool이 과도하게 사용되는 환경에서 자주 발생합니다.
해결 방법
원인 1 해결: RESTRICTED MODE 해제
먼저 현재 데이터베이스의 상태를 확인합니다.
-- 현재 인스턴스 상태 및 제한 모드 여부 확인
SELECT INSTANCE_NAME, STATUS, LOGINS, DATABASE_STATUS
FROM V$INSTANCE;
-- RESTRICTED SESSION 권한을 가진 사용자 확인
SELECT USERNAME, GRANTED_ROLE
FROM DBA_ROLE_PRIVS
WHERE GRANTED_ROLE = 'DBA';
-- 제한 모드 해제 (SYS 또는 SYSDBA 권한 필요)
ALTER SYSTEM DISABLE RESTRICTED SESSION;
-- 해제 후 상태 재확인
SELECT INSTANCE_NAME, STATUS, LOGINS
FROM V$INSTANCE;
위 명령 실행 후 LOGINS 컬럼이 ALLOWED로 변경되면 일반 사용자 접속이 가능해집니다.
원인 2 해결: 인스턴스 OPEN 단계로 전환
인스턴스가 MOUNT 또는 NOMOUNT 단계에 멈춰 있다면 아래 명령으로 정상 오픈합니다.
-- SQLPLUS로 SYSDBA 접속 후 현재 상태 확인
SELECT STATUS FROM V$INSTANCE;
-- NOMOUNT 상태일 경우
ALTER DATABASE MOUNT;
-- MOUNT 상태일 경우
ALTER DATABASE OPEN;
-- RAC 환경에서 특정 인스턴스 재기동 시 상태 확인
SELECT INST_ID, INSTANCE_NAME, STATUS, ACTIVE_STATE
FROM GV$INSTANCE
ORDER BY INST_ID;
-- 리스너에 인스턴스 강제 재등록
ALTER SYSTEM REGISTER;
ALTER SYSTEM REGISTER 명령은 PMON이 리스너에 인스턴스 정보를 즉시 재등록하도록 강제하므로, 리스너 재시작 없이도 빠르게 문제를 해결할 수 있습니다.
원인 3 해결: 리스너 상태 점검 및 인스턴스 재등록
OS 레벨에서 리스너 상태를 먼저 점검합니다.
-- 리스너에 등록된 서비스 및 인스턴스 상태 확인 (OS 명령어)
-- lsnrctl status
-- lsnrctl services
-- 현재 연결된 세션 수 및 리소스 현황 확인
SELECT COUNT(*) AS TOTAL_SESSIONS,
STATUS,
TYPE
FROM V$SESSION
GROUP BY STATUS, TYPE
ORDER BY TOTAL_SESSIONS DESC;
-- 과도한 연결 유발 계정 확인
SELECT USERNAME, COUNT(*) AS SESSION_COUNT
FROM V$SESSION
WHERE TYPE = 'USER'
GROUP BY USERNAME
ORDER BY SESSION_COUNT DESC;
-- 불필요한 INACTIVE 세션 정리 (세션 ID 확인 후 종료)
SELECT SID, SERIAL#, USERNAME, STATUS, LAST_CALL_ET
FROM V$SESSION
WHERE STATUS = 'INACTIVE'
AND LAST_CALL_ET > 3600 -- 1시간 이상 비활성 세션
AND USERNAME IS NOT NULL;
-- 특정 세션 강제 종료
ALTER SYSTEM KILL SESSION '&SID,&SERIAL#' IMMEDIATE;
-- 리스너에 인스턴스 강제 재등록
ALTER SYSTEM REGISTER;
예방 방법
1. 리스너 및 인스턴스 상태 모니터링 자동화
운영 환경에서는 리스너 상태와 인스턴스 LOGINS 컬럼을 주기적으로 모니터링하는 스크립트를 작성하여 크론잡(cron job) 또는 Oracle Enterprise Manager(OEM) Alert으로 설정해 두는 것이 필수입니다. V$INSTANCE의 LOGINS 컬럼이 RESTRICTED로 변경되면 즉시 DBA에게 알림이 가도록 구성하고, 유지보수 작업 완료 후에는 반드시 제한 모드 해제 여부를 체크리스트에 포함시켜야 합니다.
2. 유지보수 절차 표준화 및 Connection Pool 설정 최적화
DBA가 RESTRICTED MODE를 활성화하거나 DB를 재기동할 때는 반드시 사전에 애플리케이션 팀과 협의하고, 작업 종료 후 정상화 절차(ALTER SYSTEM DISABLE RESTRICTED SESSION, ALTER SYSTEM REGISTER 실행)를 RunBook에 명문화해야 합니다. 또한 애플리케이션의 Connection Pool 설정에서 connection timeout, validation query, retry 횟수를 적절히 설정하면 일시적인 ORA-12528 발생 시 자동 재연결을 통해 서비스 영향을 최소화할 수 있습니다.
관련 에러
- ORA-12514:
TNS: listener does not currently know of service requested— 리스너가 요청한 서비스 이름을 인식하지 못할 때 발생. ORA-12528과 함께 리스너 등록 문제 진단 시 같이 확인 필요. - ORA-12505:
TNS: listener does not currently know of SID given in connect descriptor— SID 기반 접속 시 리스너가 해당 SID를 모를 때 발생. - ORA-01034:
ORACLE not available— 인스턴스 자체가 기동되지 않았을 때 발생하며, ORA-12528과 증상이 유사하여 혼동될 수 있음. - ORA-12541:
TNS: no listener— 리스너 프로세스 자체가 실행되지 않을 때 발생. ORA-12528은 리스너는 살아있으나 인스턴스가 차단 중인 상태이므로 구분이 필요.
주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.
본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.