Flashback Database 기능을 이용한 Rewind 복구 (=오라클 타임 머신 복구)

Oracle Flashback Database를 사용하여 전체 데이터베이스를 과거 시간으로 되감을 수 있습니다.
미디어 복구 와 달리 데이터베이스를 과거 상태로 되돌리려면 데이터 파일을 복원 할 필요가 없습니다
.

지금부터 데이터베이스 시간을 돌려 장애를 복구하겠습니다.

먼저 FLASHBACK 기능을 활성화 합니다.

SQL> SHUTDOWN IMMEDIATE ;

SQL> STARTUP MOUNT ;

SQL> ALTER DATABASE FLASHBACK ON ;

SQL> SHUTDOWN IMMEDIATE ;

SQL> STARTUP ;

SQL> SELECT NAME , FLASHBACK_ON FROM V$DATABASE ;

 

 

이제 일반 유저 세션에서 장애 테스트 테이블과 현재 SCN 값을 확인 합니다.

SQL> SELECT COUNT(*) FROM EMP ;

SQL> SELECT CURRENT_SCN FROM V$DATABASE;

 

이제 해당 테이블에 데이터 유실 장애를 발생 합니다.

SQL> DELETE FROM EMP ;

SQL> COMMIT ;

 

다시 돌아오기 위하여 현재의 SCN 값을 조회 합니다.

SQL> SELECT CURRENT_SCN FROM V$DATABASE ;

 

이제 데이터베이스의 시간을 과거로 돌립니다.

SQL> SHUTDOWN IMMEDIATE ;

SQL> STARTUP MOUNT ;

RMAN> FLASHBACK DATABASE TO SCN <과거 SCN 번호> ;

SQL> ALTER DATABASE OPEN READ ONLY ;

 

 

이제 장애가 발생한 테이블을 조회 합니다.

SQL> SELECT COUNT(*) FROM EMP ;

 

이제 테이블을 조회 한 테이블을 백업 받아 놓습니다.

# exp USERID=YONGSEOK/PARK TABLES=EMP FILE=EMP.DMP

 

이제 다시 원래의 DB 시간으로 돌아 갑니다.

SQL> SHUTDOWN IMMEDIATE ;

SQL> STARTUP MOUNT ;

RMAN> FLASHBACK DATABASE TO SCN <현재 SCN 번호> ;

SQL> ALTER DATABASE OPEN RESETLOGS ;

 

RESETLOGS 로 오픈하면 현재로 다시 돌아 오게 됩니다.

이제 데이터 유실이 되어 장애 난 테이블을 다시 조회 합니다.

SQL>SELECT COUNT(*) FROM EMP ;

 

과거에 돌아가서 백업 받은 데이터를 복구 합니다.

# imp USERID=YONGSEOK/PARK TABLES=EMP FILE=EMP.DMP IGNORE=Y

 

마지막으로 장애 난 테이블을 조회하여 복구가 완료 되었는지 확인 합니다.

SQL> SELECT COUNT(*) FROM EMP ;

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다