Database초보우낙

33.Rman을 사용해서 time base 불완전 복구하기 본문

백업과 복구/백업과 복구(Rman)

33.Rman을 사용해서 time base 불완전 복구하기

오운학 2024. 4. 15. 23:45

 

 

 

 

만약 금요일 12시에 scott유저를 drop 했다면 1159분으로 DB 되돌려야하는데 그럴려면 과거에 백업받은 모든 datafile들을 복원하고 아카이브 로그파일을 하나씩 적용해서 복구를 하는데 1159분까지 시간기반 불완전 복구를 하면 된다

 

 

실습

#1. Rman으로 full backup 수행

#2. .bash_profile nls_date_format파라미터를 지정해서 오라클에서 날짜를 검색할때 시분초가 기본값으로 보이게 셋팅

#3. 로그스위치 3 발생시키기

#4. 체크포인트 발생

#5. 현재시간을 확인

#6. scott유저를 drop

#7. shutdown immediate DB 내린다

#8. startup mount 한다

#9. rman으로 불완전 복구를 한다

#10. resetlogs db 올린다

 

 

구현

#1. Rman으로 full backup 수행

 

<공간확보>

report obsolete;     --지워도 되는 파일 확인

delete obsolete;    -- 지워도 되는 파일 삭제

 

<full backup>

backup database;

 

 

 

#2. .bash_profile nls_date_format파라미터를 지정해서 오라클에서 날짜를 검색할때 시분초가 기본값으로 보이게 셋팅

 

vi .bash_profile

NLS_LANG=american_america.we8iso8859p15
NLS_DATE_FORMAT='RRRR/MM/DD:HH24:MI:SS'
export NLS_LANG
export NLS_DATE_FORMAT

source .bash_profile

 

 

#3. 로그스위치 3 발생시키기

 

@logsw

/

/

 

#4. 체크포인트 발생

 

alter system checkpoint

#5. 현재시간을 확인

 

select sysdate from dual;

 

2024/03/07:15:05:26

 

#6. scott유저를 drop

 

drop user scott cascade;

 

 

--cascade 사용해야 drop 있다

 

 

 

 

 

#7. shutdown immediate DB 내린다

 

shutdown immediate

 

#8. startup mount 한다

 

startup mount

 

 

#9. rman으로 불완전 복구를 한다

 

run { set until time='2024/03/07:15:05:26' ;

restore database;

recover database;

        }

 

--run으로 스크립트를 실행시키면 여러 개 스크립트를 모아서 한번에 (배치형) 수행한다

 

#10. resetlogs db 올린다

 

alter database open resetlogs;

 

 

 

scott유저를 drop 시간을 잘모르겠다 -> 전문가들이 알아낸다

로그마이너(logminer) 이용하면 리두로그 파일과 아카이브 로그 파일을 분석할 있다

그래서 drop user scott cascade 명령어를 수행한 시간을 있다

 

불완전 복구 반드시 full backup

 

backup database;

 

문제1. db 현재시간을 확인

 

문제2. emp,dept 테이블을 drop purge time base 불완전 복구하기

 

 

shutdown immediate

 

startup mount

 

run { set until time='2024/03/07:15:21:17' ;

restore database;

recover database;

        }

 

alter database open resetlogs;