Database초보우낙

29.Rman을 사용해서 모든 data file들을 전부 삭제하고 복구하기 본문

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

29.Rman을 사용해서 모든 data file들을 전부 삭제하고 복구하기

오운학 2024. 4. 15. 13:25

 

 

 

지금 현재 datafile들이 전부 online되어있는지 확인

select file#, status from v$datafile;

 

만약 오프라인일경우

alter database datafile 번호 online;

 

 

실습

#1. 데이터 파일들의 위치를 확인

#2. 컨트롤 파일들의 위치를 확인

#3. redo log file들의 위치를 확인

#4. Rman으로 접속해서 Rman DB 구조를 알고 있는지 확인하기

#5. Rman으로 full backup 수행

#6. shutdown abort DB 내린다

#7. 모든 data file들을 전부 삭제

#8. startyo 시도

#9. 복구해야할 파일들이 무엇인지 ㅎ확인

#10. 전체 데이터 파일들을 복원

#11. 전체 데이터 파일들을 복구

#12. alter database open으로 db 올린다

 

구현

#1. 데이터 파일들의 위치를 확인

@datafile

 

#2. 컨트롤 파일들의 위치를 확인

@controlfile

 

#3. redo log file들의 위치를 확인

@logfile

 

#4. Rman으로 접속해서 Rman DB 구조를 알고 있는지 확인하기

--os에서 Rman으로 접속

Rman target sys/oracle nocatalog

 

--Rman에서 Db 구조를 확인하기

report schema;

Rman Permanent Datafile Temporary Files 알고 있다

-> controlfile 내용을 보고 알고 있다

 

-> report schema를하면 controlfile 조회한다

Rman 접속할 nocatalog옵션을 써서 접속을 하게 되면 control file 이용해서 db정보를 Rman 알게 된다.

 

 

#5. Rman으로 full backup 수행

 

 

 

--fast recovery area영역 공간 확인



SELECT 
    NAME, 
    SPACE_LIMIT / 1024 / 1024 AS "Space Limit (MB)", 
    SPACE_USED / 1024 / 1024 AS "Space Used (MB)", 
    SPACE_RECLAIMABLE / 1024 / 1024 AS "Space Reclaimable (MB)", 
    NUMBER_OF_FILES AS "Files"
FROM 
    V$RECOVERY_FILE_DEST;

backup database include current controlfile;

 

 

DB 전체 백업이기 때문에 위의 명령어를 수행하기전에 먼저 fast recovery area영역의 공간이 부족하지 않은지 먼저 확인하고 실행해야한다

 

list backup;

 

#6. shutdown abort DB 내린다

#7. 모든 data file들을 전부 삭제

#8. startup 시도

 

 

#9. 복구해야할 파일들이 무엇인지 확인

select * from v$recover_file;

 

 

FILE NOT FOUND = 파일을 찾을 없다 (1~13번까지의 파일을 찾을 없다)

 

#10. 전체 데이터 파일들을 복원

Rman으로 접속

rman target sys/oracle nocatalog

 

list failure;

 

restore database;

 

 

#11. 전체 데이터 파일들을 복구

 

recover database;

 

#12. alter database open으로 db 올린다

alter database open;

문제1. 로그 스위치를 3 일으키고 체크 포인트를 수동으로 발생시킨다

 그리고 원본 데이터 파일들중 3 이상 rm으로 삭제하고 Rman으로 복구하세요

 

 

 

shutdown abort

rm ts*.dbf

startup

 

 

복구해야하는 파일 확인

select * from v$recover_file;