惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
DataBreaches.Net
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
IT之家
IT之家
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
月光博客
月光博客
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
腾讯CDC
B
Blog RSS Feed
博客园 - Franky
爱范儿
爱范儿

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
ORA-00255 오류 원인과 해결 방법 완벽 가이드
umzzil nng · 2026-05-27 · via DEV Community

umzzil nng

ORA-00255란?

ORA-00255는 Oracle 데이터베이스가 아카이브 로그 파일을 기록하려는 과정에서 실패했을 때 발생하는 에러입니다. ARCHIVELOG 모드로 운영 중인 데이터베이스에서 온라인 리두 로그 파일이 꽉 차 아카이빙이 필요한 시점에 아카이브 대상 경로에 파일을 쓰지 못할 경우 이 에러가 트리거됩니다. 이 에러가 지속되면 아카이빙이 중단되어 데이터베이스 전체가 hang 상태에 빠질 수 있으므로 즉각적인 조치가 반드시 필요합니다.


주요 발생 원인

1. 아카이브 로그 대상 경로의 디스크 공간 부족

가장 흔하고 치명적인 원인입니다. LOG_ARCHIVE_DEST 또는 LOG_ARCHIVE_DEST_n 파라미터로 설정된 경로의 파일시스템 여유 공간이 소진되면 아카이빙이 즉시 실패합니다. 특히 배치 작업이나 대용량 DML이 집중되는 시간대에 갑자기 아카이브 로그가 폭발적으로 증가하여 디스크를 가득 채우는 경우가 실무에서 매우 자주 발생합니다.

2. 아카이브 대상 경로의 잘못된 설정 또는 접근 권한 문제

LOG_ARCHIVE_DEST_n 파라미터에 설정된 경로가 존재하지 않거나, Oracle 프로세스를 실행하는 OS 계정(oracle 유저)이 해당 디렉터리에 쓰기 권한을 가지고 있지 않은 경우에도 발생합니다. 운영 서버 교체, 마운트 포인트 변경, 또는 보안 정책 변경 이후에 갑자기 이 에러가 발생한다면 이 원인을 가장 먼저 의심해야 합니다.

3. ARCn 백그라운드 프로세스 장애

Oracle의 아카이버 프로세스(ARCn)가 내부 오류로 인해 비정상 종료되거나 응답하지 않는 상태가 되면 아카이빙이 중단됩니다. 이 경우 alert log에 ARCn 관련 추가 에러 메시지가 함께 기록되는 경우가 많으며, 단순히 아카이브 경로를 점검해도 문제가 해결되지 않을 때 프로세스 상태를 반드시 확인해야 합니다.


해결 방법

원인 1: 디스크 공간 부족 해결

먼저 현재 아카이브 로그 경로와 공간 사용량을 확인합니다.

-- 현재 아카이브 로그 설정 경로 확인
SHOW PARAMETER log_archive_dest;

-- 아카이브 로그 목록 및 크기 확인
SELECT NAME, BLOCKS * BLOCK_SIZE / 1024 / 1024 AS SIZE_MB, COMPLETION_TIME
FROM V$ARCHIVED_LOG
WHERE STANDBY_DEST = 'NO'
  AND DELETED = 'NO'
ORDER BY COMPLETION_TIME DESC;

-- 아카이브 로그 전체 누적 크기 요약
SELECT TRUNC(COMPLETION_TIME, 'DD') AS LOG_DATE,
       COUNT(*) AS LOG_COUNT,
       ROUND(SUM(BLOCKS * BLOCK_SIZE) / 1024 / 1024, 2) AS TOTAL_MB
FROM V$ARCHIVED_LOG
WHERE STANDBY_DEST = 'NO'
  AND DELETED = 'NO'
GROUP BY TRUNC(COMPLETION_TIME, 'DD')
ORDER BY LOG_DATE DESC;

Enter fullscreen mode Exit fullscreen mode

RMAN을 사용하여 이미 백업 완료된 아카이브 로그를 삭제합니다. 운영 환경에서는 반드시 백업 여부를 확인한 후 삭제하십시오.

-- RMAN을 통한 백업 완료된 아카이브 로그 삭제 (가장 안전한 방법)
-- RMAN 접속 후 실행:
-- rman target /

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1'
  BACKED UP 1 TIMES TO DEVICE TYPE DISK;

-- 또는 특정 시간 이전의 백업된 아카이브 로그 삭제
DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE - 2'
  BACKED UP 2 TIMES TO DISK;

-- 삭제 후 RMAN 카탈로그 정합성 확인
CROSSCHECK ARCHIVELOG ALL;

Enter fullscreen mode Exit fullscreen mode


원인 2: 아카이브 경로 설정 오류 해결

-- 현재 모든 아카이브 대상 상태 확인
SELECT DEST_ID,
       DEST_NAME,
       STATUS,
       TARGET,
       ARCHIVER,
       DESTINATION,
       ERROR
FROM V$ARCHIVE_DEST
WHERE STATUS != 'INACTIVE';

-- 에러가 발생한 아카이브 대상 비활성화 (임시 조치)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = '' SCOPE=BOTH;

-- 새로운 정상 경로로 변경 (경로가 OS에 실제 존재해야 함)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/archive/oradata/ORCL' SCOPE=BOTH;

-- 변경 후 아카이브 상태 재확인
SELECT DEST_ID, STATUS, DESTINATION, ERROR
FROM V$ARCHIVE_DEST
WHERE DEST_ID <= 5;

-- 아카이버 재기동 없이 수동으로 로그 스위치 후 아카이빙 정상 여부 확인
ALTER SYSTEM SWITCH LOGFILE;

-- 현재 로그 아카이빙 진행 상황 모니터링
SELECT GROUP#, STATUS, ARCHIVED FROM V$LOG;

Enter fullscreen mode Exit fullscreen mode

OS 레벨에서 디렉터리 권한을 확인하고 조치합니다 (DBA가 시스템 팀에 요청하거나 직접 수행):

-- Oracle 디렉터리 오브젝트를 통한 접근 테스트 (선택사항)
-- OS 명령어로 확인: ls -ld /archive/oradata/ORCL
-- 권한 부여: chown oracle:oinstall /archive/oradata/ORCL

-- DB 레벨에서 아카이브 로그 모드 상태 확인
SELECT LOG_MODE, ARCHIVER FROM V$DATABASE;

-- ARCn 프로세스 현재 상태 확인
SELECT PROCESS, STATUS, LOG_SEQUENCE#, STATE
FROM V$MANAGED_STANDBY
WHERE PROCESS LIKE 'ARC%';

Enter fullscreen mode Exit fullscreen mode


원인 3: ARCn 프로세스 장애 해결

-- alert log에서 에러 확인 (Oracle 11g 이상)
SELECT ORIGINATING_TIMESTAMP, MESSAGE_TEXT
FROM V$DIAG_ALERT_EXT
WHERE MESSAGE_TEXT LIKE '%ARC%'
   OR MESSAGE_TEXT LIKE '%ORA-00255%'
ORDER BY ORIGINATING_TIMESTAMP DESC
FETCH FIRST 30 ROWS ONLY;

-- 현재 아카이버 프로세스 수 확인
SHOW PARAMETER log_archive_max_processes;

-- ARCn 프로세스 수를 늘려 재기동 유도 (최대 30까지 가능)
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = 4 SCOPE=BOTH;

-- 강제 로그 스위치로 아카이빙 재시도 유도
ALTER SYSTEM SWITCH LOGFILE;

-- 아카이빙 강제 실행 (특정 시퀀스 재아카이빙)
ALTER SYSTEM ARCHIVE LOG SEQUENCE 1234;

-- 전체 미아카이브 로그 강제 아카이빙
ALTER SYSTEM ARCHIVE LOG ALL;

Enter fullscreen mode Exit fullscreen mode


예방 방법

1. 아카이브 로그 공간 자동 모니터링 및 알람 구축

운영 환경에서는 아카이브 로그 디스크 사용률이 70~80%를 초과하기 전에 알람을 받을 수 있도록 모니터링 스크립트를 주기적으로 실행하는 것이 필수입니다. RMAN의 자동 삭제 정책(CONFIGURE ARCHIVELOG DELETION POLICY)과 OS 레벨의 cron 기반 모니터링을 함께 운영하면 더욱 안정적입니다.

-- RMAN 아카이브 로그 보존 정책 설정 (백업 완료 후 자동 삭제 허용)
-- RMAN 접속 후 실행:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;

-- 아카이브 로그 사용량 조기 경보용 모니터링 쿼리 (cron 스케줄러로 주기 실행)
SELECT DEST_ID,
       DESTINATION,
       SPACE_LIMIT / 1024 / 1024 / 1024 AS LIMIT_GB,
       SPACE_USED / 1024 / 1024 / 1024 AS USED_GB,
       ROUND((SPACE_USED / SPACE_LIMIT) * 100, 2) AS USE_PCT
FROM V$RECOVERY_FILE_DEST
WHERE SPACE_LIMIT > 0;

Enter fullscreen mode Exit fullscreen mode

2. FRA(Fast Recovery Area) 사용 및 크기 적절히 설정

LOG_ARCHIVE_DEST 대신 FRA(DB_RECOVERY_FILE_DEST)를 활용하면 Oracle이 공간 관리를 자동으로 수행하므로 운영 부담을 크게 줄일 수 있습니다. FRA 크기는 최소 일일 아카이브 로그 생성량의 3배 이상, 전체 데이터베이스 크기를 고려하여 충분히 할당해야 하며, 정기 RMAN 백업 후 자동으로 오래된 파일이 정리되도록 설정하는 것이 Best Practice입니다.

-- FRA 설정 확인 및 변경
SHOW PARAMETER db_recovery_file_dest;

-- FRA 경로 및 크기 설정 (실제 환경에 맞게 조정)
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/fra/oradata' SCOPE=BOTH;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 200G SCOPE=BOTH;

-- FRA 사용 현황 상세 조회
SELECT FILE_TYPE,
       PERCENT_SPACE_USED,
       PERCENT_SPACE_RECLAIMABLE,
       NUMBER_OF_FILES
FROM V$RECOVERY_AREA_USAGE;

Enter fullscreen mode Exit fullscreen mode


관련 에러

  • ORA-00257: 아카이버 프로세스 내부 에러로 인해 아카이빙이 완전히 중단된 상태. ORA-00255보다 더 심각한 단계이며 데이터베이스가 SYSDBA 접속만 허용하는 상태가 됩니다.
  • ORA-19809: FRA(Fast Recovery Area) 공간이 DB_RECOVERY_FILE_DEST_SIZE 한도를 초과했을 때 발생하며 ORA-00255와 함께 나타나는 경우가 많습니다.
  • ORA-16038: 온라인 리두 로그 아카이빙 실패. ORA-00255와 유사한 맥락에서 발생하며 alert log에서 함께 확인되는 경우가 많습니다.
  • ORA-00270: 아카이브 로그 파일 생성 중 에러로, ORA-00255 발생 시 alert log에 연속으로 기록되는 대표적인 동반 에러입니다.