[Oracle] RAC CRS 오류와 oracleasm 디스크 사라짐 문제 해결

반응형

Oracle RAC CRS 오류와 oracleasm 디스크 사라짐 문제 해결

Oracle RAC CRS 오류와 oracleasm 디스크 사라짐 문제 해결

Oracle RAC CRS 오류와 oracleasm 디스크 사라짐 문제 해결

1️⃣ 사건 개요

Oracle RAC 환경에서 CRS가 기동되지 않고 oracleasm 디스크가 사라지는 현상이 발생한 사례이다. node1은 전일 기준으로 인스턴스 기동이 불가능했고, node2는 Stuck Archiver, Mounted(Closed), Open Initiated 상태로 불안정하게 유지되고 있었다. 금일 node1 서버 재기동 이후 CRS 프로세스가 제대로 올라오지 않으면서 전체 클러스터 서비스가 중단 위기에 놓였다.

환경 요약
- Oracle RAC 2노드 환경 (node1, node2)
- HOME=/oracle/app/oracle/product/19.3.0, 상태 표기는 STABLE 이었으나 실사용 불가
- ASM 디스크 그룹에 DATA, FRA, voting file 구성
- oracleasm 기반 디스크 인식 구조 사용

2️⃣ 오류 증상 및 로그

node1 재기동 후 CRS 및 DB 인스턴스가 정상 기동되지 않았고, 로그를 확인한 결과 여러 단계의 오류가 순차적으로 확인되었다.

■ FRA 용량 부족 및 인스턴스 종료


ORA-19815: WARNING: db_recovery_file_dest_size of 100G bytes is 100.00% used
ORA-19809: limit exceeded for recovery files
ORA-19809: terminating the instance due to error 19809
    

FRA(Flash Recovery Area)가 100% 사용 상태에 도달하여 인스턴스가 강제 종료되는 상황이 반복되었다.

■ DB 재기동 시 로그 관련 오류


ORA-16038: log 3 sequence# 12345 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: '+DATA/DB/onlinelog/group_3.258.123456789'
    

로그 아카이브가 불가능하여 REDO 로그 파일을 재사용하지 못하고, 결국 DB 인스턴스 기동도 실패하는 상태였다.

■ Voting file 관련 CRS 오류


(:CSSNM00070:) clssnmCompleteInitVFDiscovery: Voting file not found.
Retrying discovery in 15 seconds
    

CRS 레벨에서는 voting file 을 찾지 못한다는 메시지가 반복 출력되었으며, 이는 ASM 디스크 그룹 자체가 인식되지 않는 상태임을 의미한다.

■ oracleasm 디스크 인식 실패


# oracleasm scandisks
Unable to instantiate disk "DATA1"

# ls -l /dev/oracleasm
(아무것도 표시되지 않음)
    

/dev/oracleasm 아래에 어떤 디스크도 보이지 않았고, oracleasm init, oracleasm configure -i 명령도 모두 실패하였다. 재기동 시에는 ASM 관련 오류와 함께 스토리지 연결 실패 로그가 다수 발생했다.

3️⃣ 원인 분석

증상을 종합하면 “FRA 가득 참 → 인스턴스 종료 → CRS voting file 미발견 → ASM 디스크 인식 실패” 순으로 문제가 확산된 것처럼 보였으나, 근본 원인은 oracleasm 커널 모듈이 로딩되지 못한 상태였다.

최종 원인
- kmod-oracleasm 패키지가 설치되어 있지 않음
- oracleasm 모듈이 로드되지 않아 ASM 디스크(예: DATA1)가 /dev/oracleasm 에 생성되지 않음
- Voting file, ASM 디스크 그룹이 모두 인식 실패 → CRS 및 DB 기동 불가
- FRA 가득 참 문제는 부수적인 결과이자 추가 장애 요인

즉, FRA full 로 인한 ORA-19815, ORA-19809 역시 장애를 키운 요소였지만, RAC 전체가 기동되지 않은 결정적 이유는 kmod-oracleasm 미설치로 인한 ASM 계층 붕괴였다.

4️⃣ 조치 과정

■ 1) kmod-oracleasm 패키지 설치

oracleasm 초기화·설정이 모두 실패하는 상황에서 OS 레벨 패키지를 다시 점검한 결과, kmod-oracleasm 패키지가 설치되지 않은 것이 확인되었다. 해당 패키지를 설치한 뒤 oracleasm을 다시 초기화했다.


# yum install kmod-oracleasm

# oracleasm configure -i
# oracleasm init
# oracleasm scandisks
Scanning the system for Oracle ASMLib disks:
Disk "DATA1" is a valid ASM disk
...
    

oracleasm scandisksDATA1 등 ASM 디스크가 정상적으로 인식되는 것을 확인했다.

■ 2) FRA 용량 확보

FRA가 가득 차 인스턴스가 계속 종료되는 문제를 해결하기 위해 아카이브 로그를 정리하고 RMAN에서 expired 상태의 archivelog를 삭제했다.


RMAN> CROSSCHECK ARCHIVELOG ALL;
RMAN> DELETE EXPIRED ARCHIVELOG ALL;
RMAN> DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-3';
    

필요 시 FRA 크기를 일시적으로 확장하거나 상위 스토리지에서 여유 공간을 확보하는 것도 함께 수행할 수 있다.

■ 3) node1 resetlogs 기동

FRA 정리 후에도 node1에서는 로그 스위치 문제로 DB 기동이 지연되었기 때문에 node2 인스턴스를 정상 종료한 뒤, node1에서 resetlogs 옵션으로 인스턴스를 기동했다.


-- node2에서 DB 및 인스턴스 정지
SQL> SHUTDOWN IMMEDIATE;

-- node1에서 RESETLOGS 기동
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE OPEN RESETLOGS;
    

resetlogs 이후 컨트롤 파일·REDO 로그 상태를 다시 점검하고, 아카이브·백업 정책을 재정비하였다.

■ 4) CRS 및 RAC 전체 상태 점검


# crsctl stat res -t
# srvctl status database -d <DB_NAME>
# asmcmd lsdg
    

두 노드 모두에서 CRS, ASM, DB 인스턴스가 정상(ONLINE/OPEN) 상태로 올라온 것을 확인했다.

5️⃣ 정리 및 예방 전략

이번 사례는 단순한 FRA 용량 부족을 넘어, kmod-oracleasm 패키지 미설치 → ASM 디스크 미인식 → voting file 미발견 → CRS 장애로 이어진 복합 장애였다.

예방 포인트
- OS 패키지 목록에 kmod-oracleasm 등 ASM 관련 필수 패키지 포함 여부 정기 점검
- 커널 업그레이드·OS 패치 후 oracleasm 모듈 로딩 상태 확인
- FRA 사용량 모니터링 및 임계치 알람 설정 (예: 70%, 90%)
- 아카이브 로그 정리 배치 및 RMAN 백업 정책 정기 점검
- 다중 노드 환경에서는 resetlogs 수행 절차와 순서를 사전에 문서화

7️⃣ 기본 오류 대응 4단계

1단계 원인 파악
- CRS 로그, alert 로그, oracleasm 로그에서 에러 코드 및 voting file/ASM 상태 확인

2단계 영향 범위 확인
- 어떤 노드가 영향을 받는지, 서비스 전체 중단 여부, FRA·ASM 디스크 영향 범위 파악

3단계 임시 조치 적용
- FRA 긴급 정리, 필요 시 서비스 일시 중단 후 재기동, ASM 디스크 재인식 등

4단계 근본 원인 제거
- kmod-oracleasm 등 필수 패키지 설치 및 구성, 모니터링·패치 프로세스 개선

오류 분석 흐름도

  • 외부 노출 여부 확인 – 서비스 중단 범위 및 고객 영향 파악
  • 오류 원인이 된 기능·역할 일시 비활성화 (문제 노드 또는 인스턴스 분리)
  • 관련 포트·스토리지 경로·ASM 디스크 그룹 상태 점검 및 차단/복구
  • CRS/ASM/DB 로그를 모니터링하며 재발 여부를 지속 관제
반응형