2026년 07월 06일 | DBMS Error 가이드
이 글에서 다루는 내용
ORA-01119 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.
ORA-01119 error in creating database file 는?
ORA-01119 에러는 Oracle 데이터베이스가 새로운 데이터파일(datafile)을 생성하는 과정에서 운영체제 수준의 문제가 발생했을 때 나타나는 에러입니다. 주로 테이블스페이스(tablespace)에 데이터파일을 추가하거나, 새로운 테이블스페이스를 생성할 때 디스크 공간 부족, 권한 문제, 잘못된 경로 지정 등의 이유로 발생합니다. 이 에러는 단독으로 나타나기보다 ORA-27040, ORA-27041 등의 OS 레벨 에러와 함께 출력되는 경우가 많아, 스택 트레이스 전체를 함께 확인하는 것이 매우 중요합니다.
주요 발생 원인
1. 디스크 여유 공간 부족
가장 흔하게 발생하는 원인입니다. Oracle 데이터파일을 생성하려는 마운트 포인트 또는 디렉토리에 충분한 여유 공간이 없을 경우 운영체제가 파일 생성 요청을 거부합니다. 특히 자동 확장(AUTOEXTEND)이 설정된 환경에서 파일이 무한정 커지다가 디스크를 꽉 채운 후, 추가 파일 생성을 시도하면 이 에러가 발생합니다.
2. 운영체제 파일시스템 권한 문제
Oracle 프로세스를 실행하는 OS 계정(일반적으로 oracle)이 해당 디렉토리에 쓰기(write) 권한을 갖고 있지 않을 때 발생합니다. 새로운 스토리지 마운트 포인트를 추가하거나, ASM(Automatic Storage Management) 디스크 그룹을 변경한 이후 권한 설정이 누락되는 경우가 실무에서 자주 목격됩니다. 또한 SELinux 또는 AppArmor 같은 보안 모듈이 활성화된 환경에서도 동일한 현상이 나타날 수 있습니다.
3. 잘못된 파일 경로 또는 존재하지 않는 디렉토리 지정
데이터파일 생성 시 지정한 경로가 실제로 존재하지 않거나, 오타가 있을 경우 운영체제가 파일을 생성할 수 없습니다. 특히 RAC(Real Application Clusters) 환경이나 Data Guard 구성에서 노드마다 디렉토리 구조가 다를 수 있어, 한쪽 노드에서만 경로가 유효한 경우 에러가 발생합니다. DB_CREATE_FILE_DEST 파라미터가 잘못 설정된 경우에도 이 원인에 해당합니다.
해결 방법
원인 1: 디스크 여유 공간 부족 해결
먼저 OS 레벨에서 디스크 사용량을 확인합니다.
# Linux/Unix 환경에서 디스크 사용량 확인
df -h /oradata
du -sh /oradata/*
Oracle 내부에서 현재 데이터파일 및 자동 확장 설정을 확인합니다.
-- 현재 테이블스페이스별 데이터파일 현황 확인
SELECT
tablespace_name,
file_name,
ROUND(bytes / 1024 / 1024, 2) AS size_mb,
ROUND(maxbytes / 1024 / 1024, 2) AS max_size_mb,
autoextensible
FROM dba_data_files
ORDER BY tablespace_name;
-- 테이블스페이스 여유 공간 확인
SELECT
tablespace_name,
ROUND(SUM(bytes) / 1024 / 1024, 2) AS free_mb
FROM dba_free_space
GROUP BY tablespace_name
ORDER BY free_mb;
디스크 공간이 부족하다면 다른 마운트 포인트에 데이터파일을 추가합니다.
-- 여유 공간이 있는 다른 경로에 데이터파일 추가
ALTER TABLESPACE users
ADD DATAFILE '/oradata2/PROD/users02.dbf'
SIZE 500M
AUTOEXTEND ON NEXT 100M MAXSIZE 2G;
AUTOEXTEND의 MAXSIZE를 제한하여 디스크 풀(full) 현상을 예방합니다.
-- 기존 데이터파일의 MAXSIZE 제한 설정
ALTER DATABASE DATAFILE '/oradata/PROD/users01.dbf'
AUTOEXTEND ON NEXT 50M MAXSIZE 1G;
원인 2: 파일시스템 권한 문제 해결
OS 레벨에서 디렉토리 권한을 확인하고 수정합니다.
# 디렉토리 권한 및 소유자 확인
ls -ld /oradata/PROD/
# Oracle 계정으로 소유자 변경 (root 권한 필요)
chown oracle:oinstall /oradata/PROD/
# 쓰기 권한 부여
chmod 755 /oradata/PROD/
Oracle 측에서 디렉토리 오브젝트를 사용하는 경우 권한을 재확인합니다.
-- 디렉토리 오브젝트 권한 확인
SELECT
grantee,
owner,
table_name AS directory_name,
privilege
FROM dba_tab_privs
WHERE table_name IN (
SELECT directory_name FROM dba_directories
);
-- 특정 사용자에게 디렉토리 read/write 권한 부여
GRANT READ, WRITE ON DIRECTORY oradata_dir TO oracle;
원인 3: 잘못된 경로 지정 해결
경로를 확인하고 올바른 경로로 재시도합니다.
-- DB_CREATE_FILE_DEST 파라미터 확인
SHOW PARAMETER db_create_file_dest;
-- 파라미터 값 수정 (올바른 경로로 변경)
ALTER SYSTEM SET db_create_file_dest = '/oradata/PROD/'
SCOPE = BOTH;
-- 올바른 경로로 테이블스페이스 생성
CREATE TABLESPACE new_tbs
DATAFILE '/oradata/PROD/new_tbs01.dbf'
SIZE 200M
AUTOEXTEND ON NEXT 50M MAXSIZE 1G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
존재하지 않는 디렉토리는 OS 레벨에서 먼저 생성합니다.
# Oracle 계정으로 디렉토리 생성
mkdir -p /oradata/PROD/new_location
chown oracle:oinstall /oradata/PROD/new_location
chmod 755 /oradata/PROD/new_location
예방 방법
1. 테이블스페이스 및 디스크 사용량 자동 모니터링 구축
디스크 사용량이 임계치를 초과하기 전에 사전 경보를 받을 수 있도록 모니터링 스크립트를 스케줄링합니다. Oracle Enterprise Manager(OEM)의 Metric Threshold 기능을 활용하거나, 아래와 같은 쿼리를 Cron Job으로 실행하여 DBA에게 알림을 발송하도록 구성하는 것이 Best Practice입니다.
-- 테이블스페이스 사용률 85% 이상인 항목 조회 (모니터링 스크립트용)
SELECT
a.tablespace_name,
ROUND(a.total_mb, 2) AS total_mb,
ROUND(a.total_mb - NVL(b.free_mb, 0), 2) AS used_mb,
ROUND(NVL(b.free_mb, 0), 2) AS free_mb,
ROUND((1 - NVL(b.free_mb, 0) / a.total_mb) * 100, 2) AS used_pct
FROM (
SELECT tablespace_name, SUM(bytes) / 1024 / 1024 AS total_mb
FROM dba_data_files
GROUP BY tablespace_name
) a
LEFT JOIN (
SELECT tablespace_name, SUM(bytes) / 1024 / 1024 AS free_mb
FROM dba_free_space
GROUP BY tablespace_name
) b ON a.tablespace_name = b.tablespace_name
WHERE ROUND((1 - NVL(b.free_mb, 0) / a.total_mb) * 100, 2) >= 85
ORDER BY used_pct DESC;
2. 데이터파일 생성 표준 절차(SOP) 및 경로 규칙 문서화
새로운 데이터파일이나 테이블스페이스를 생성하기 전, 반드시 표준화된 디렉토리 구조와 네이밍 규칙을 팀 내에서 정의하고 문서화해야 합니다. RAC 환경이라면 모든 노드에서 동일한 디렉토리 경로가 유효한지 사전 점검하고, 스토리지 추가 시 Oracle 계정의 쓰기 권한 설정을 반드시 체크리스트 항목으로 포함시켜야 합니다. OMF(Oracle Managed Files)를 활성화하면 파일명과 경로 관리를 Oracle이 자동으로 처리하므로 수동 오류를 크게 줄일 수 있습니다.
관련 에러
- ORA-27040: 파일 생성 실패, OS 레벨의 세부 원인을 함께 출력하는 에러로 ORA-01119와 거의 항상 함께 발생합니다.
- ORA-27041: 파일 열기 실패 관련 에러로, 경로나 권한 문제 진단에 참고합니다.
- ORA-01110: 문제가 발생한 데이터파일 번호와 이름을 명시해주는 에러로, ORA-01119 발생 시 함께 확인해야 합니다.
- ORA-01116: 데이터베이스 파일 열기 에러로, 파일이 물리적으로 존재하지 않거나 접근 불가 상태일 때 발생합니다.
- ORA-19502: RMAN 백업/복구 과정 중 파일 쓰기 실패 시 발생하는 에러로, 유사한 OS 파일시스템 문제를 공유합니다.
주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.
본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.