Oracle Flashback 기능 완벽 가이드
실수로 데이터를 삭제하거나 잘못 수정한 적 있으신가요?
Oracle의 Flashback 기능을 사용하면 과거 시점으로 테이블, 트랜잭션, 데이터베이스 전체를 복원할 수 있습니다.
📚 목차
1. Flashback이란?
Oracle Flashback은 사용자가 실수로 데이터를 삭제하거나 변경했을 때, 과거 시점으로 데이터 또는 객체를 복원할 수 있도록 해주는 Oracle의 고급 기능입니다.
백업 없이도 빠르게 복구가 가능하며, DBA뿐 아니라 일반 사용자도 쉽게 활용할 수 있습니다.
2. Flashback의 종류
기능 | 설명 |
---|---|
Flashback Query | 과거 데이터를 SELECT로 조회 |
Flashback Table | 테이블 전체를 특정 시점으로 복구 |
Flashback Drop | 삭제된 테이블을 휴지통에서 복구 |
Flashback Version Query | 변경된 이력(버전) 추적 |
Flashback Transaction Query | 트랜잭션 단위로 조회 및 복구 |
Flashback Database | 전체 DB를 특정 시점으로 복구 (RMAN 필요) |
3. Flashback 사용을 위한 설정
Flashback을 사용하려면 다음 설정이 선행되어야 합니다.
-- 1. Undo Retention 설정
ALTER SYSTEM SET UNDO_RETENTION = 900;
-- 2. 테이블에 ROWDEPENDENCIES 옵션 적용
CREATE TABLE my_table (
id NUMBER, name VARCHAR2(100)
) ROWDEPENDENCIES;
-- 3. 테이블 Drop 시 Recycle Bin 확인
SHOW RECYCLEBIN;
4. 실전 예제
✔️ Flashback Query
-- 과거 10분 전 데이터 조회
SELECT * FROM employees AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE);
✔️ Flashback Table
-- employees 테이블을 5분 전으로 복구
FLASHBACK TABLE employees TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '5' MINUTE);
✔️ Flashback Drop
-- DROP TABLE 후에도 복원 가능
DROP TABLE test_table;
-- 복원
FLASHBACK TABLE test_table TO BEFORE DROP;
✔️ Flashback Version Query
SELECT versions_starttime, versions_endtime, salary
FROM employees VERSIONS BETWEEN TIMESTAMP
SYSTIMESTAMP - INTERVAL '1' HOUR AND SYSTIMESTAMP
WHERE employee_id = 100;
5. Flashback과 백업 복구의 차이
- 📌 Flashback은 실시간, 빠른 복구 가능
- 📌 백업 복구는 전체 복원, 시간이 오래 걸림
- 📌 Flashback은 일부 데이터/테이블 복원에 적합
6. 실무 활용 팁
- ✅ Flashback 기능은
UNDO
데이터에 의존하므로UNDO_RETENTION
을 충분히 설정하세요. - ✅ 중요한 테이블은 DROP 대신
TRUNCATE
나DISABLE
로 관리하세요. - ✅ Flashback Table은
ALTER
권한이 필요합니다. - ✅ Flashback Drop 기능은 휴지통(RECYCLEBIN)이 활성화되어 있어야 작동합니다.
🔚 마무리
Oracle Flashback 기능은 데이터 복원, 오류 분석, 실수 복구에 있어 매우 강력한 도구입니다.
특히 운영 중 실수로 인한 데이터 손실을 빠르게 복구할 수 있다는 점에서 꼭 숙지해두어야 할 기능입니다.
다음 포스트에서는 Oracle Flashback Database (전체 복구)에 대해 좀 더 심화된 내용을 다루겠습니다.
'ORACLE' 카테고리의 다른 글
Oracle Flashback Database 완전 정복 | 전체 복구 기능 (0) | 2025.04.16 |
---|---|
ORA-04098 오류 해결 방법 | 트리거 무효 오류 완전 분석 (0) | 2025.04.14 |
ORA-01555 오류 해결 방법 | Snapshot too old 예외 완전 정복 (0) | 2025.04.13 |
ORA-01403 오류 해결 방법 | Oracle 데이터 없음 예외 완전 분석 (0) | 2025.04.12 |
ORA-00001 오류 해결 방법 | Oracle UNIQUE 제약 조건 위반 완전 정복 (0) | 2025.04.11 |