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

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

이 글에서 다루는 내용

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

ORA-32004 obsolete or deprecated parameter(s) specified for RDBMS instance 는?

ORA-32004 에러는 Oracle 데이터베이스 인스턴스를 시작할 때 초기화 파라미터 파일(init.ora 또는 spfile)에 더 이상 사용되지 않거나 폐기된(obsolete or deprecated) 파라미터가 지정되어 있을 때 발생합니다. 이 에러는 실제로 인스턴스 기동을 막는 치명적인 에러가 아니라 경고(warning) 성격의 메시지로, alert 로그 파일에 기록되며 데이터베이스는 정상적으로 시작됩니다. 그러나 Oracle 버전 업그레이드 이후에 자주 나타나며, 장기적으로 해당 파라미터에 의존하는 기능이 동작하지 않을 수 있으므로 반드시 점검하고 제거해야 합니다.


주요 발생 원인

1. Oracle 버전 업그레이드 후 구버전 파라미터 잔존

Oracle 데이터베이스를 낮은 버전(예: 11g, 12c)에서 높은 버전(19c, 21c)으로 업그레이드하면 이전 버전에서 유효했던 파라미터가 신버전에서는 폐기되는 경우가 많습니다. 예를 들어 OPTIMIZER_ADAPTIVE_FEATURES, _OPTIMIZER_COST_MODEL, LOG_ARCHIVE_START 등은 특정 버전 이후로 더 이상 지원되지 않으며, 이러한 파라미터가 spfile 또는 pfile에 그대로 남아 있으면 ORA-32004가 발생합니다. 업그레이드 작업 후에는 반드시 파라미터 목록을 재검토하는 습관이 필요합니다.

2. 잘못된 spfile/pfile 파라미터 수동 편집

DBA가 직접 init.ora 파일이나 spfile을 텍스트 편집기로 수정하다가 오타가 발생하거나, 타 DB 환경에서 복사해온 파라미터 파일에 현재 버전과 맞지 않는 파라미터가 포함되는 경우가 있습니다. spfile은 바이너리 형식이므로 직접 편집해서는 안 되며, 반드시 ALTER SYSTEM SET 명령어 또는 CREATE SPFILE FROM PFILE 방식으로 관리해야 합니다. 이를 무시하고 수작업으로 편집하면 예기치 않은 파라미터 오류가 발생하기 쉽습니다.

3. Oracle-supplied 스크립트나 파라미터 템플릿의 무분별한 적용

인터넷이나 타 프로젝트에서 가져온 파라미터 템플릿, 혹은 예전에 작성한 자동화 스크립트를 최신 버전 환경에 그대로 적용할 때 deprecated 파라미터가 유입되는 경우가 많습니다. 예를 들어 PARALLEL_AUTOMATIC_TUNING, STANDBY_FILE_MANAGEMENT(일부 버전), REMOTE_OS_AUTHENT 등이 대표적인 사례입니다. 현재 운영 환경의 Oracle 버전에서 지원하는 파라미터를 항상 공식 문서에서 확인하고 적용하는 것이 중요합니다.


해결 방법

Step 1: Alert Log에서 문제 파라미터 확인

가장 먼저 alert log를 확인하여 어떤 파라미터가 문제인지 식별합니다.

-- alert log 위치 확인
SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Diag Trace';

-- 또는 ADR을 통해 확인
SELECT NAME, VALUE FROM V$DIAG_INFO;

Step 2: 현재 설정된 모든 파라미터 조회

-- SPFILE에 명시적으로 설정된 파라미터 전체 조회
SELECT NAME, VALUE, DESCRIPTION, ISDEFAULT, ISMODIFIED
FROM V$SPPARAMETER
WHERE ISSPECIFIED = 'TRUE'
ORDER BY NAME;

-- deprecated 또는 obsolete 파라미터만 필터링
SELECT P.NAME, P.VALUE, P.DESCRIPTION
FROM V$SPPARAMETER P
WHERE P.ISSPECIFIED = 'TRUE'
  AND P.NAME IN (
    SELECT NAME FROM V$OBSOLETE_PARAMETER
  );

Step 3: Obsolete 파라미터 목록 직접 조회

-- Oracle에서 제공하는 obsolete 파라미터 뷰 조회
SELECT NAME, DESCRIPTION
FROM V$OBSOLETE_PARAMETER
ORDER BY NAME;

-- 현재 spfile에 설정된 파라미터와 cross-check
SELECT SP.NAME, SP.VALUE
FROM V$SPPARAMETER SP
INNER JOIN V$OBSOLETE_PARAMETER OP
  ON SP.NAME = OP.NAME
WHERE SP.ISSPECIFIED = 'TRUE';

Step 4: 문제 파라미터 제거

파라미터가 식별되었다면 ALTER SYSTEM RESET 명령어로 제거합니다.

-- 특정 파라미터를 SPFILE에서 제거 (예: OPTIMIZER_ADAPTIVE_FEATURES)
ALTER SYSTEM RESET OPTIMIZER_ADAPTIVE_FEATURES SCOPE=SPFILE;

-- 또 다른 예: LOG_ARCHIVE_START 제거
ALTER SYSTEM RESET LOG_ARCHIVE_START SCOPE=SPFILE;

-- PARALLEL_AUTOMATIC_TUNING 제거
ALTER SYSTEM RESET PARALLEL_AUTOMATIC_TUNING SCOPE=SPFILE;

-- 변경 후 반드시 spfile 내용 재확인
SELECT NAME, VALUE
FROM V$SPPARAMETER
WHERE ISSPECIFIED = 'TRUE'
ORDER BY NAME;

Step 5: pfile 방식으로 관리하는 경우

-- 현재 spfile을 pfile로 추출하여 수동 편집 후 재생성
CREATE PFILE = '/tmp/init_backup.ora' FROM SPFILE;

-- 텍스트 편집기로 /tmp/init_backup.ora 에서 deprecated 파라미터 제거 후
-- pfile을 기반으로 새 spfile 생성
CREATE SPFILE FROM PFILE = '/tmp/init_backup.ora';

-- 이후 DB 재시작 필요
SHUTDOWN IMMEDIATE;
STARTUP;

Step 6: 파라미터 대체값 확인 및 적용

일부 deprecated 파라미터는 새로운 파라미터로 대체됩니다. 예를 들어 OPTIMIZER_ADAPTIVE_FEATURES는 19c 이후 OPTIMIZER_ADAPTIVE_PLANS와 OPTIMIZER_ADAPTIVE_STATISTICS로 분리되었습니다.

-- 대체 파라미터 설정 예시
ALTER SYSTEM SET OPTIMIZER_ADAPTIVE_PLANS = TRUE SCOPE=SPFILE;
ALTER SYSTEM SET OPTIMIZER_ADAPTIVE_STATISTICS = FALSE SCOPE=SPFILE;

-- 현재 인스턴스 파라미터 확인
SHOW PARAMETER OPTIMIZER_ADAPTIVE;

예방 방법

1. 업그레이드 전후 파라미터 검증 자동화

Oracle 버전 업그레이드 전에는 반드시 Pre-Upgrade Information Tool(preupgrade.jar)을 실행하여 deprecated/obsolete 파라미터를 사전에 탐지해야 합니다. 업그레이드 완료 후에도 주기적으로 V$OBSOLETE_PARAMETER와 V$SPPARAMETER를 JOIN하여 비교하는 모니터링 스크립트를 crontab이나 Oracle Scheduler에 등록해두면 새로운 파라미터 문제가 생겼을 때 즉시 알림을 받을 수 있습니다.

-- 주기적 모니터링용 쿼리 (스케줄러 JOB에 등록 권장)
SELECT SP.NAME AS PARAM_NAME,
       SP.VALUE AS PARAM_VALUE,
       OP.DESCRIPTION AS OBSOLETE_REASON
FROM V$SPPARAMETER SP
INNER JOIN V$OBSOLETE_PARAMETER OP
  ON UPPER(SP.NAME) = UPPER(OP.NAME)
WHERE SP.ISSPECIFIED = 'TRUE'
ORDER BY SP.NAME;

2. 파라미터 변경 이력 관리 및 표준화

파라미터 변경은 반드시 변경관리 프로세스(Change Management)를 통해 문서화하고, 테스트 환경에서 먼저 검증한 후 운영 환경에 적용하는 원칙을 세워야 합니다. 또한 팀 내에서 사용 가능한 파라미터 표준 목록을 Oracle 공식 문서 기준으로 버전별로 관리하면, 신규 DBA가 잘못된 파라미터를 적용하는 실수를 사전에 방지할 수 있습니다. 특히 spfile은 절대 텍스트 편집기로 직접 수정하지 않는다는 팀 규칙을 명문화하는 것이 중요합니다.


관련 에러

  • ORA-32001: SPFILE에 기록하도록 요청되었으나 SPFILE이 존재하지 않을 때 발생하는 에러로, spfile 관리 과정에서 함께 자주 나타납니다.
  • ORA-00837: MEMORY_TARGET 또는 MEMORY_MAX_TARGET 관련 파라미터 충돌 시 발생하며, deprecated 메모리 파라미터 설정 문제와 연관될 수 있습니다.
  • ORA-32017: SPFILE 업데이트 실패 시 발생하는 에러로, ALTER SYSTEM SET/RESET 작업 중 권한 또는 파일 접근 문제로 나타납니다.
  • ORA-00093: 파라미터 값이 유효 범위를 벗어났을 때 발생하며, 구버전 파라미터를 그대로 적용할 때 함께 나타날 수 있습니다.
DBMS 에러 코드 시리즈

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

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

댓글 남기기