[Oracle] Oracle ORA-03113, ORA-03114, ORA-24324 오류 원인과 복구 방법

반응형

ORA-03113, ORA-03114, ORA-24324 오류 사진

Oracle ORA-03113, ORA-03114, ORA-24324 오류 원인과 복구 방법

1. 에러 개요

Oracle Database를 운영하다 보면 간헐적으로 ORA-03113: end-of-file on communication channel 또는 ORA-03114: not connected to ORACLE 오류를 마주하게 됩니다. 이는 데이터베이스 인스턴스와 세션 간 통신이 비정상적으로 종료되었을 때 발생하는 대표적인 오류입니다.

SQL> startup
ORACLE instance started.
Database mounted.
ORA-03113: end-of-file on communication channel

SQL> alter database open;
ORA-03114: not connected to ORACLE

SQL> shutdown immediate;
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist

위 로그에서 알 수 있듯이 인스턴스는 기동되었지만 데이터베이스 오픈 단계에서 세션이 끊어지고, 이후 서비스 핸들이 초기화되지 않아 정상적인 shutdown 명령조차 수행되지 않는 상태였습니다.

2. 원인 분석

  • 손상된 컨트롤 파일 또는 데이터파일 헤더 — 비정상 종료나 디스크 오류로 컨트롤 파일이 손상된 경우.
  • 미완료된 복구(recovery incomplete) — redo log 또는 archive log 불일치로 인해 오픈 단계에서 세션이 끊김.
  • 서비스 핸들 손상(ORA-24324) — 인스턴스가 불완전하게 시작되어 내부 핸들이 초기화되지 못한 경우.

3. 조치 방안

정상적인 복구 절차는 다음과 같습니다.

SQL> shutdown abort;
ORACLE instance shut down.

SQL> startup nomount;
ORACLE instance started.

SQL> alter database mount;
Database altered.

SQL> recover database until cancel;
Media recovery complete.

SQL> alter database open resetlogs;
Database altered.

이 과정을 통해 손상된 로그 시퀀스를 무시하고 RESETLOGS 모드로 데이터베이스를 재오픈할 수 있습니다.

4. 조치 예시 및 결과

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup;
Database mounted.
Database opened.

정상적으로 Database opened. 메시지가 출력되면 복구 완료입니다. 이후 alert.log를 반드시 확인하여 추가적인 블록 손상(block corruption)이나 I/O 오류가 없는지 점검합니다.

5. 결론 및 예방 조치

  • 정기적으로 RMAN BACKUP 수행하여 빠른 복구 가능하도록 구성
  • alert.logtrace 파일의 I/O 에러 패턴 주기적 점검
  • 디스크 장애 및 스토리지 연결 상태 모니터링 강화
  • 정전·비정상 종료 후에는 startup mount 상태에서 복구 수행

요약: ORA-03113, ORA-03114, ORA-24324는 단순 세션 오류가 아닌 내부 메모리 또는 복구 불완전 문제에서 기인하는 경우가 많습니다. shutdown abort → nomount → mount → recover → open resetlogs 순서로 복구를 시도하면 대부분 정상화됩니다.

 

반응형

 

반응형
LIST