Oracle RMAN 오프라인 복구: LBAC 오류 해결 사례

환경 구성

구분사양
원본 서버Windows Server 2008 R2 (32-bit), Oracle 11.2.0.1.0
대상 서버Windows Server 2012 Standard (64-bit), Oracle 11.2.0.1.0
백업 솔루션EMC Avamar 7.5.1

백업 스크립트 구조

Avamar에서 자동 생성한 RMAN 채널 설정은 다음과 같이 구성됩니다:

RUN {
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT TO 'CTL_%F';
    
    ALLOCATE CHANNEL ch1 TYPE SBT 
        PARMS="SBT_LIBRARY=C:\PROGRA~1\avs\bin\LIBOBK~1.DLL" 
        FORMAT '%d_%U';
    
    SEND CHANNEL 'ch1' 
        '"--libport=55154" 
         "--cacheprefix=ORCL_ch1" 
         "--sysdir=C:\Program Files\avs\etc"';
    
    BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG DELETE INPUT;
}

복구 과정 및 장애 발생

1단계: 인스턴스 준비

DBCA로 동일한 SID로 인스턴스를 생성한 후, 제어 파일을 복원하여 복구를 시작합니다.

2단계: 아카이브 갭 발생

초기 복구 시 SCN 동기화를 고려하지 않아 다음 오류가 발생했습니다:

아카이브 로그 시퀀스=29360 삭제 완료
아카이브 로그를 찾을 수 없음: 시퀀스=29361, 스레드=1

RMAN-06054: 미디어 복구에서 알 수 없는 스레드 1 시퀀스 29361의 
            아카이브 로그 및 시작 SCN 983751610을 요청함

SCN 기반 복구로 전환하여 Avamar에서 복구 완료 표시가 났으나, 실제 연결 시 치명적 오류가 발생했습니다.

3단계: LBAC 보안 모듈 오류

RMAN-04005: 대상 데이터베이스에 오류 존재:
ORA-12432: LBAC 오류: zllesesinit:OCIStmtExecute

SQL*Plus로 SYSDBA 접속은 가능했으나, 쿼리 실행 시 다음 오류가 발생했습니다:

ORA-01012: 로그온되지 않음

해결 절차

단계별 복구 시퀀스

Linux 환경의 표준 해결책(lbac_off 컴파일)이 Windows에서 적용 불가하여 대체 접근법을 시도했습니다.

첫 번째 시도

SQL> SHUTDOWN ABORT;
SQL> STARTUP MIGRATE;
SQL> @?\rdbms\admin\catnools.sql

결과: PLS-801 내부 오류 발생

두 번째 시도

SQL> SHUTDOWN ABORT;
SQL> STARTUP UPGRADE;
SQL> @?\rdbms\admin\utlirp.sql;
SQL> SHUTDOWN IMMEDIATE;

결과: 동일한 ORA-12432 오류 재발

세 번째 시도

SQL> SHUTDOWN ABORT;
SQL> STARTUP UPGRADE;
SQL> @?\rdbms\admin\utlrp.sql;

결과: 무한 대기 상태 발생

최종 성공 시퀀스

별도 세션에서 재시도하여 예상치 못하게 성공했습니다:

-- 세션 1: 강제 종료 후 마이그레이션 모드
SQL> SHUTDOWN ABORT;
SQL> STARTUP MIGRATE;

-- 세션 2: LBAC 컴포넌트 제거
SQL> @?\rdbms\admin\catnools.sql;

-- 정상 모드 전환
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

-- 검증
SQL> SELECT banner FROM v$version WHERE ROWNUM = 1;

핵심 원인 분석

오류 코드원인해결 핵심
ORA-01012세션 비정상 종료 후 메모리 잔여SHUTDOWN ABORT로 정리
ORA-12432LBAC(Label-Based Access Control) 모듈 초기화 실패catnools.sql로 컴포넌트 제거
PLS-80132→64비트 마이그레이션 시 PL/SQL 객체 불일치utlirp/utlrp 재컴파일 시도

운영 권고사항

  1. 플랫폼 전환 시: 32비트→64비트 복구 전에 반드시 utlirp.sql 실행 계획 수립
  2. SCN 관리: 복구 시작 전 SET UNTIL SCN 또는 SET UNTIL TIME 명시적 지정
  3. LBAC 점검: 원본 DB에서 SELECT * FROM dba_ols_status;로 보안 옵션 사용 여부 확인
  4. Windows 특화: make 명령 사용 불가 시, 레지스트리 기반 옵션 비활성화 고려

태그: Oracle RMAN Oracle Database 11g EMC Avamar Windows Server LBAC

6월 22일 21:30에 게시됨