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

ORA-00301
2026년 06월 06일 | DBMS Error 가이드

이 글에서 다루는 내용

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

ORA-00301 error in adding log file – file cannot be created 는?

ORA-00301 에러는 Oracle 데이터베이스에서 Redo Log 파일을 새로 추가하려는 시도가 실패했을 때 발생하는 에러입니다. 주로 ALTER DATABASE ADD LOGFILE 명령이나 로그 그룹 추가 작업 중, 지정된 경로에 파일을 생성할 수 없을 때 나타납니다. 이 에러는 데이터베이스의 고가용성과 직결되는 Redo Log 관리에 문제가 생긴 것이므로, 신속하게 원인을 파악하고 조치를 취해야 합니다.


주요 발생 원인

1. 지정된 디렉토리가 존재하지 않거나 접근 권한 부족

가장 흔한 원인으로, ADD LOGFILE 명령 시 지정한 파일 경로의 디렉토리가 OS 상에 실제로 존재하지 않는 경우입니다. 또는 디렉토리가 존재하더라도 Oracle 프로세스를 실행하는 OS 유저(보통 oracle)가 해당 디렉토리에 대한 쓰기 권한을 갖지 못한 경우에도 동일한 에러가 발생합니다. 특히 새로운 스토리지 마운트 포인트를 추가하거나 디렉토리 구조를 변경한 직후에 자주 나타납니다.

2. 디스크 용량 부족 (Disk Space Exhaustion)

Redo Log 파일을 생성하려는 파티션 또는 파일시스템의 남은 용량이 부족할 때 발생합니다. 대용량 Redo Log 파일(수백 MB ~ GB 단위)을 추가하려고 할 때, 디스크 여유 공간이 그보다 적으면 OS 레벨에서 파일 생성 자체가 거부됩니다. 운영 환경에서 디스크 모니터링을 소홀히 하면 예기치 않게 이 에러를 마주칠 수 있습니다.

3. 동일한 파일명이 이미 존재하거나 ASM 설정 오류

지정한 경로에 동일한 이름의 파일이 이미 존재하는 경우, Oracle은 해당 파일을 덮어쓰지 않고 에러를 발생시킵니다. ASM(Automatic Storage Management) 환경에서는 디스크 그룹명 오타, 디스크 그룹 마운트 해제, 또는 ASM 인스턴스 미기동 상태에서 로그 파일 추가를 시도할 경우에도 이 에러가 나타납니다. 복잡한 스토리지 환경일수록 경로 설정에 각별한 주의가 필요합니다.


해결 방법

원인 1 해결: 디렉토리 존재 여부 및 권한 확인 후 수정

먼저 OS에서 해당 디렉토리를 생성하고, Oracle 유저에게 권한을 부여합니다.

# OS 레벨에서 디렉토리 생성 및 권한 부여
mkdir -p /u02/oradata/ORCL/redo
chown oracle:oinstall /u02/oradata/ORCL/redo
chmod 755 /u02/oradata/ORCL/redo

이후 Oracle에서 Redo Log 파일을 추가합니다.

-- 현재 Redo Log 그룹 현황 확인
SELECT group#, members, bytes/1024/1024 AS size_mb, status
FROM v$log
ORDER BY group#;

-- Redo Log 멤버 파일 경로 확인
SELECT group#, member, status
FROM v$logfile
ORDER BY group#;

-- 새 Redo Log 그룹 추가 (디렉토리 존재 확인 후)
ALTER DATABASE ADD LOGFILE GROUP 4
  ('/u02/oradata/ORCL/redo/redo04a.log',
   '/u03/oradata/ORCL/redo/redo04b.log')
  SIZE 200M REUSE;

원인 2 해결: 디스크 용량 확인 및 확보

# OS 레벨에서 디스크 여유 공간 확인
df -h /u02/oradata/ORCL/redo

# Oracle 내에서 데이터 파일 사용 현황 확인
-- 현재 Redo Log 파일 크기 및 경로 확인
SELECT a.group#,
       a.member,
       b.bytes / 1024 / 1024 AS size_mb,
       b.status
FROM   v$logfile a,
       v$log b
WHERE  a.group# = b.group#
ORDER  BY a.group#;

-- 불필요한 아카이브 로그 확인 (ARCHIVELOG 모드인 경우)
-- RMAN에서 실행
-- RMAN> LIST ARCHIVELOG ALL;
-- RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

디스크 공간을 확보한 후 다시 로그 파일 추가를 시도합니다.

-- 공간 확보 후 Redo Log 재추가
ALTER DATABASE ADD LOGFILE GROUP 5
  ('/u02/oradata/ORCL/redo/redo05.log')
  SIZE 100M;

원인 3 해결: 기존 파일 확인 및 ASM 상태 점검

-- 기존에 같은 경로로 등록된 로그파일이 있는지 확인
SELECT * FROM v$logfile WHERE member LIKE '%redo04%';

-- REUSE 옵션으로 기존 파일 덮어쓰기 허용 (주의: 운영 중 사용 여부 확인 필수)
ALTER DATABASE ADD LOGFILE GROUP 4
  ('/u02/oradata/ORCL/redo/redo04.log')
  SIZE 200M REUSE;

-- ASM 환경에서 디스크 그룹 상태 확인
SELECT name, state, total_mb, free_mb
FROM   v$asm_diskgroup;

-- ASM 환경에서 Redo Log 추가 예시
ALTER DATABASE ADD LOGFILE GROUP 6
  ('+DATA/ORCL/ONLINELOG/redo06.log',
   '+FRA/ORCL/ONLINELOG/redo06b.log')
  SIZE 200M;

예방 방법

1. Redo Log 관련 디렉토리 및 디스크 용량에 대한 정기 모니터링 자동화

Redo Log 파일이 위치한 파일시스템의 사용률을 주기적으로 모니터링하는 스크립트 또는 Oracle Enterprise Manager 알림을 설정하는 것이 중요합니다. 디스크 사용률이 80%를 초과하면 즉시 알림을 받도록 설정하고, 사전에 공간을 확보하는 프로세스를 정착시켜야 합니다. 또한 신규 디렉토리를 사용하는 경우 실제 파일 생성 테스트를 먼저 진행하여 권한과 경로 유효성을 검증하는 습관을 들여야 합니다.

-- Redo Log 파일 경로 및 상태 정기 점검 쿼리 (스케줄러 등록 권장)
SELECT f.group#,
       f.member,
       l.bytes / 1024 / 1024 AS size_mb,
       l.status,
       l.archived
FROM   v$logfile f
JOIN   v$log l ON f.group# = l.group#
ORDER  BY f.group#, f.member;

2. Redo Log 다중화(Multiplexing) 및 변경 전 충분한 사전 검토

Redo Log 파일은 반드시 서로 다른 디스크(또는 ASM 디스크 그룹)에 2개 이상의 멤버로 다중화하여 관리해야 합니다. 로그 그룹 추가 전에는 항상 대상 디렉토리의 존재 여부, 권한, 여유 공간을 체크리스트로 만들어 확인하는 절차를 팀 내 표준으로 정착시키는 것이 좋습니다. 변경 관리(Change Management) 프로세스에 해당 절차를 포함시켜 실수를 사전에 방지하세요.


관련 에러

  • ORA-00302: 로그 파일 멤버 수 초과 관련 에러로, 하나의 그룹에 추가할 수 있는 멤버 수 한계에 도달했을 때 발생합니다.
  • ORA-00304: 요청된 REDO 로그 파일이 사용 중일 때 발생하는 에러입니다.
  • ORA-00312: 온라인 로그 파일을 찾을 수 없거나 접근 불가 시 발생하며, 데이터베이스 복구 시 자주 마주치는 에러입니다.
  • ORA-19502: 파일 쓰기 에러로, 디스크 I/O 문제 또는 공간 부족 시 함께 나타날 수 있습니다.
  • ORA-27040: OS 레벨 파일 생성 실패 에러로, ORA-00301과 함께 스택 트레이스에 동반 출력되는 경우가 많습니다.
DBMS 에러 코드 시리즈

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

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

댓글 남기기