본문 바로가기
Programming 개발은 구글로/Database

[Database] 오라클에서 제공하는 플래시-백 기능의 종류와 주요 특징

by 40대직장인 2022. 5. 3.

오라클에서 제공하는 플래시-백 기능의 종류와 주요 특징

플래시-백 기능이란 DB 관리 중에 실수로 데이터를 삭제하거나 데이터의 값을 잘못 변경하는 실수가 가끔 발생합니다. 이러한 오류를 바로 인식할 경우는 롤백이라는 명령으로 바로 전에 수행한 작업을 원상복귀시킬 수 있지만 COMMIT을 한 이후 시점이나, 한참 시간이 지난 후에 알았다면 복구하기가 난감합니다.

 

이러한 경우에 특정한 시간 또는 시점으로 되돌릴 수 있는 기능입니다.

 

간단하게 말해서 특정한 과거시점의 질의를 실행할 수 있게 해 주며 데이터베이스에 구조적인 변화를 가하지 않고 과거 일정 시점의 데이터 상태를 확인할 수 있는 기능입니다.

 

◆ ROW LEVEL FLASHBACK

특정 ROW만 과거시점으로 되돌리는 기능입니다. COMMIT 된 데이터만 플래시백 할 수 있습니다.

 

◆ TABLE LEVEL FLASHBACK

특정 테이블만 과거시점으로 되돌리는 기능입니다.

 

◆ DATABASE LEVEL FLASHBACK

데이터베이스 전체를 특정 시점으로 되돌리는 기능으로 불완전 복구와 유사한 기능입니다.

 

◎ 필요시점

truncate table 장애 복구, 특정 시점으로 전체 데이터베이스 되돌릴 때

◎ 전통방식의 백업/복구와의 비교

-전통방식에 비해 복구 속도가 빠름

-전통방식이 백업 데이터, 아카이브 로그, 리두 로그 파일을 이용하지만 플래시백 로그 사용

-언제라도 원하는 시점으로 되돌아갈 수 있음

◎ 사전 환경설정

-parameter 파일에 db_flashback_retention_target 설정

-mount 단계에서 flashback on 설정

 

◆ FLASHBACK DROP

오라클 10g 이전 버전에서 DROP 명령어를 실행하면 데이터베이스로부터 해당 객체는 영구히 삭제됩니다.

하지만 10g 버전에서는 DROP 명령어를 실행하면 재활용 영역에 일단 저장되며 PURGE 테이블 명령어 또는 PURGE 테이블스페이스 명령어를 실행해야만 데이터베이스로부터 완전히 삭제할 수 있습니다. 만약 재활용 영역에 저장된 DROP 된 객체를 복구할 때는 FLASHBACK TABLE~TO BEFORE DROP 명령어를 실행합니다.

이 기능은 불완전 복구처럼 사용자의 실수에 의해 객체를 삭제한 경우 적용하면 쉽고 간단하게 객체를 재복구 할 수 있습니다.

 

◆ FLASHBACK ROW HISTORY

플래시백 쿼리 기능을 통해 과거 특정 시점에 수행된 트랜잭션의 결과들을 참조할 수 있었습니다. 오라클 10g 버전에서는 이 기능이 향상되어 과거 특정 시점부터 현재 쿼리가 수행되는 시점까지 변경된 모든 버전의 행 정보를 참조할 수 있게 되었습니다.

 

◆ FLASHBACK TRANSACTION HISTORY

오라클 데이터베이스 내에서 발생한 모든 트랜잭션의 로그 내용을 참조할 수 있습니다. 즉, 어떤 사용자가, 언제 데이터베이스에 접속하여, 어떤 DML문을 실행하여, 어떤 행에 대해 언제 COMMIT문을 실행했었는지를 분석할 수 있습니다.

FLASHBACK ROW HISTORY 기능과 함께 사용할 수 있으며 로그 마이너 패키지에 의해 리두 로그 파일과 아카이브 파일의 로그 정보를 분석하는 방법과 매우 유사한 기능입니다.

다만 플래시백 데이터베이스와 자료 사전만으로도 트랜잭션 정보를 분석할 수 있기 때문에 매우 빠르며 효과적입니다.

 

 

댓글