Oracle ORA-65133 오류 원인과 해결 방법 완벽 가이드

ORA-65133
2026년 10월 17일 | DBMS Error 가이드

이 글에서 다루는 내용

ORA-65133 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.

ORA-65133 the application does not exist 는?

ORA-65133 에러는 Oracle Multitenant 환경(CDB/PDB 아키텍처)에서 특정 애플리케이션(Application)을 참조하려 할 때, 해당 애플리케이션이 Application Root 또는 Application PDB에 존재하지 않을 경우 발생하는 에러입니다. 이 에러는 주로 Oracle 12c Release 2(12.2) 이상의 Application Container 기능을 사용하는 환경에서 나타납니다. 잘못된 애플리케이션 이름 지정, 미설치 상태에서의 참조, 또는 컨테이너 컨텍스트 불일치로 인해 발생하는 경우가 많습니다.


주요 발생 원인

  • 존재하지 않는 애플리케이션 이름 참조

가장 흔한 원인으로, ALTER PLUGGABLE DATABASE APPLICATION 명령 실행 시 등록되지 않은 애플리케이션 이름을 지정하는 경우입니다. Application Container에 설치된 애플리케이션 목록을 사전에 조회하지 않고 이름을 직접 입력하면 오탈자나 대소문자 불일치로 인해 에러가 발생합니다. 특히 팀 단위 작업 환경에서 서로 다른 담당자가 작업할 때 이름 통일성이 지켜지지 않는 경우 자주 발생합니다.

  • 잘못된 컨테이너 컨텍스트에서 명령 실행

Application Container가 아닌 일반 CDB 루트나 일반 PDB에서 Application 관련 명령을 실행하는 경우입니다. ALTER PLUGGABLE DATABASE APPLICATION 명령은 반드시 Application Root 컨테이너에 연결된 상태에서 실행되어야 합니다. 현재 세션의 컨테이너가 어디에 연결되어 있는지 확인하지 않은 채 명령을 실행하면 ORA-65133이 발생할 수 있습니다.

  • 애플리케이션이 설치(BEGIN INSTALL)되지 않은 상태에서 UPGRADE 또는 PATCH 시도

Application Container에서 BEGIN UPGRADE 또는 BEGIN PATCH 명령을 실행하기 전에 해당 애플리케이션이 정상적으로 BEGIN INSTALL ~ END INSTALL 프로세스를 통해 설치되어 있어야 합니다. 설치가 완료되지 않았거나 중간에 실패하여 애플리케이션이 완전히 등록되지 않은 상태에서 업그레이드나 패치를 시도하면 이 에러가 발생합니다. DBA_APPLICATIONS 뷰를 통해 상태를 확인하는 것이 중요합니다.


해결 방법

원인 1: 존재하지 않는 애플리케이션 이름 참조 해결

먼저 현재 Application Root에 등록된 애플리케이션 목록을 조회하여 정확한 이름과 상태를 확인합니다.

-- Application Root에 연결 후 등록된 애플리케이션 목록 조회
COLUMN APP_NAME FORMAT A30
COLUMN APP_VERSION FORMAT A15
COLUMN APP_STATUS FORMAT A20

SELECT APP_NAME, APP_VERSION, APP_STATUS, APP_ID
FROM   DBA_APPLICATIONS
ORDER  BY APP_NAME;

조회 결과에서 정확한 애플리케이션 이름을 확인한 후, 올바른 이름으로 명령을 재실행합니다.

-- 잘못된 예 (에러 발생)
ALTER PLUGGABLE DATABASE APPLICATION myapp BEGIN INSTALL '1.0' '2024-01-01';

-- 올바른 예 (정확한 이름 사용)
ALTER PLUGGABLE DATABASE APPLICATION MY_APP BEGIN INSTALL '1.0' '2024-01-01';

원인 2: 잘못된 컨테이너 컨텍스트 해결

현재 세션이 어느 컨테이너에 연결되어 있는지 확인하고, Application Root로 컨텍스트를 전환합니다.

-- 현재 연결된 컨테이너 확인
SELECT SYS_CONTEXT('USERENV', 'CON_NAME') AS CURRENT_CONTAINER,
       SYS_CONTEXT('USERENV', 'CON_ID')   AS CONTAINER_ID
FROM DUAL;

-- Application Root 컨테이너 목록 조회
SELECT CON_ID, NAME, OPEN_MODE, APPLICATION_ROOT, APPLICATION_PDB
FROM   V$PDBS
WHERE  APPLICATION_ROOT = 'YES';

-- Application Root로 전환
ALTER SESSION SET CONTAINER = APP_ROOT_PDB_NAME;

-- 전환 후 재확인
SELECT SYS_CONTEXT('USERENV', 'CON_NAME') AS CURRENT_CONTAINER FROM DUAL;

-- Application 명령 실행
ALTER PLUGGABLE DATABASE APPLICATION MY_APP BEGIN UPGRADE '1.0' TO '2.0';

원인 3: 미설치 애플리케이션에 대한 UPGRADE/PATCH 시도 해결

DBA_APPLICATIONS 뷰에서 애플리케이션의 현재 상태를 상세히 확인합니다.

-- 애플리케이션 상태 상세 조회
SELECT APP_NAME,
       APP_VERSION,
       APP_STATUS,
       APP_ID,
       APP_IMPLICIT
FROM   DBA_APPLICATIONS
WHERE  APP_NAME = 'MY_APP';

-- 상태가 'NORMAL'이 아닌 경우 처리 중인 트랜잭션 확인
SELECT * FROM DBA_APP_VERSIONS WHERE APP_NAME = 'MY_APP';

-- 애플리케이션이 없다면 신규 설치 진행
ALTER PLUGGABLE DATABASE APPLICATION MY_APP BEGIN INSTALL '1.0' '2024-01-01';

-- 설치 시 필요한 오브젝트 생성 예시
CREATE TABLE app_users (
    user_id   NUMBER PRIMARY KEY,
    user_name VARCHAR2(100) NOT NULL,
    created_dt DATE DEFAULT SYSDATE
);

-- 설치 완료
ALTER PLUGGABLE DATABASE APPLICATION MY_APP END INSTALL '1.0';

-- 설치 완료 후 업그레이드 진행
ALTER PLUGGABLE DATABASE APPLICATION MY_APP BEGIN UPGRADE '1.0' TO '2.0';

-- 업그레이드 작업 수행
ALTER TABLE app_users ADD (email VARCHAR2(200));

-- 업그레이드 완료
ALTER PLUGGABLE DATABASE APPLICATION MY_APP END UPGRADE TO '2.0';

설치나 업그레이드 실패 시 롤백 처리도 고려해야 합니다.

-- 설치 실패 시 롤백
ALTER PLUGGABLE DATABASE APPLICATION MY_APP END INSTALL '1.0' UPGRADE TO '1.0';

-- Application PDB에 변경 사항 동기화
ALTER PLUGGABLE DATABASE APPLICATION MY_APP SYNC;

예방 방법

  • 운영 전 애플리케이션 상태 점검 표준화

Application Container 관련 작업을 수행하기 전에 반드시 현재 컨테이너 컨텍스트와 애플리케이션 상태를 점검하는 표준 스크립트를 팀 내에서 공유하고 의무적으로 실행하도록 프로세스를 수립합니다. 아래와 같은 점검 스크립트를 작업 전 체크리스트로 활용하십시오.

-- 작업 전 필수 점검 스크립트
-- 1. 현재 컨테이너 확인
SELECT SYS_CONTEXT('USERENV', 'CON_NAME') AS CURRENT_CONTAINER FROM DUAL;

-- 2. 애플리케이션 상태 전체 조회
SELECT APP_NAME, APP_VERSION, APP_STATUS
FROM   DBA_APPLICATIONS
ORDER  BY APP_NAME;

-- 3. Application PDB 동기화 상태 확인
SELECT CON_ID, APP_NAME, APP_VERSION, SYNC_STATUS
FROM   DBA_APP_PDB_STATUS
ORDER  BY CON_ID, APP_NAME;
  • 애플리케이션 배포 스크립트 버전 관리 및 자동화

Application Container에 배포하는 모든 스크립트는 Git 등의 버전 관리 시스템으로 관리하고, BEGIN INSTALL ~ END INSTALL 프로세스를 자동화된 파이프라인으로 구성하여 수동 실수를 최소화합니다. 애플리케이션 이름, 버전 정보는 변수로 관리하여 오탈자로 인한 에러를 사전에 방지하는 것이 좋습니다.


관련 에러

  • ORA-65131: application operation not allowed – Application Container의 특정 오퍼레이션이 허용되지 않는 컨텍스트에서 실행될 때 발생합니다.
  • ORA-65132: invalid application name – 애플리케이션 이름에 허용되지 않는 문자나 형식이 포함된 경우 발생합니다.
  • ORA-65134: application version string too long – 버전 문자열이 허용된 길이를 초과할 때 발생합니다.
  • ORA-65040: operation not allowed from within a pluggable database – PDB 내부에서 CDB 레벨 작업을 시도할 때 발생하며, 컨테이너 컨텍스트 관련 에러로 ORA-65133과 함께 자주 나타납니다.
DBMS 에러 코드 시리즈

주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.

본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.

댓글 남기기