[Oracle] Flashback 복구 가이드 및 ORA-38706 오류 조치

반응형
Oracle Flashback 복구 가이드 및 ORA-38706 오류 조치

Oracle Flashback 복구 가이드 및 ORA-38706 오류 조치

오라클 데이터베이스는 Flashback Database 기능을 통해 특정 시점으로 데이터를 되돌릴 수 있습니다. 이는 물리적 복구(restore)보다 훨씬 빠르고 간편하게 장애 이전 상태로 복원할 수 있는 강력한 기능입니다. 아래에서는 플래시백 설정, 복구 절차, 그리고 대표적인 오류 ORA-38706의 원인과 해결 방법을 순서대로 살펴봅니다.

1️⃣ 오라클 플래시백(Flashback) 복구 개요

  • Flashback Database는 데이터파일에 기록되는 Redo 정보와 별도로 Flashback Log를 활용합니다.
  • 데이터 손상, 잘못된 DML 수행, Drop 등의 실수를 빠르게 복구할 수 있습니다.
  • 물리 백업(RMAN restore)보다 속도가 빠르고, 아카이브 로그 보관 공간도 절약됩니다.

2️⃣ Flashback 기능 설정 확인

SQL> SELECT FLASHBACK_ON FROM V$DATABASE;

FLASHBACK_ON
------------------
YES

값이 YES일 경우 플래시백 기능이 활성화된 상태입니다. 만약 NO로 표시된다면 아래 절차를 통해 활성화할 수 있습니다.

3️⃣ Flashback 기능 활성화 절차

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;

Flashback 로그는 FRA(Fast Recovery Area)에 저장되므로, FRA 경로 및 용량을 반드시 사전에 확보해야 합니다.

💡 확인 명령어:
SQL> SHOW PARAMETER db_recovery_file_dest;
SQL> SHOW PARAMETER db_recovery_file_dest_size;

4️⃣ Flashback 복구 실행 방법

아래 예시는 특정 시점으로 데이터베이스를 복구하는 과정입니다.

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('2025-10-31 09:30:00', 'YYYY-MM-DD HH24:MI:SS');
SQL> ALTER DATABASE OPEN RESETLOGS;
  • 복구 대상 시점은 Alert Log나 SCN 기반으로 지정할 수 있습니다.
  • RESETLOGS 명령은 복구 이후 새로운 로그 체인을 시작할 때 필수입니다.

5️⃣ ORA-38706 플래시백 오류 원인 및 조치

오류 메시지:

ORA-38706: Cannot turn on flashback database logging

원인:

  • DB가 ARCHIVELOG 모드가 아닌 상태에서 Flashback을 활성화 시도
  • FRA 공간 부족 또는 경로 미설정
  • Flashback 로그 파일 손상 또는 권한 문제

조치 방안:

-- 1. ARCHIVELOG 모드 확인
SQL> ARCHIVE LOG LIST;

-- 2. FRA 경로 재설정
SQL> ALTER SYSTEM SET db_recovery_file_dest='/u01/app/oracle/flash_recovery_area' SCOPE=BOTH;
SQL> ALTER SYSTEM SET db_recovery_file_dest_size=50G SCOPE=BOTH;

-- 3. Flashback 재활성화
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE FLASHBACK ON;

6️⃣ 플래시백 로그 관리 팁

  • FRA 공간은 V$RECOVERY_FILE_DEST 뷰에서 주기적으로 모니터링
  • Flashback 로그는 자동 삭제되지 않으므로 용량 관리 필요
  • 정기적인 BACKUP VALIDATERMAN CROSSCHECK 수행
요약:
Flashback Database는 단순한 복구 기능이 아닌, DB의 시간 여행(Time Travel) 기능입니다. 단, ARCHIVELOG 모드 및 FRA 설정이 올바르지 않으면 ORA-38706 오류가 발생하므로 사전 점검이 필수입니다.
반응형
LIST