Database초보우낙
30. Rman을 사용해서 모든 control file 삭제 후 복구 본문
■ 장애 상황 시나리오
※ 현장에서의 경험
테이블 스페이스에 공간을 추가할 때 무리하게 여러 개의 DATA FILE을 한번에 넣어서 추가를 하게 되면 controlfile이 깨지는 현상이 발생할 확률이 높다
■ 실습
#1. 현재 database의 db id를 조회
#2. 컨트롤 파일을 생성하는 스크립트를 생성
#3. Rman으로 접속해서 control file이 자동백업되도록 설정
#4. Rman 에서 Datafile중에 아무거나 하나를 백업
#5. control을 직접 Rman으로 백업
#6. controlfile의 위치를 확인
#7. shutdown abort
#8. 모든 controlfile을 전부 삭제
#9. startup
#10. shutdown abort
#11. startup mount
#12. Rman으로 접속
#13. control file을 Rman으로 복원
#14. alter database mount로 올린다
#15. recover database를 수행
#16. db를 open으로 올린다
◆ 구현
#1. 현재 database의 db id를 조회
방법1 . sql 구문으로 확인 | 방법2. Rman으로 접속할때 확인 |
select dbid from v$database; ![]() 1573656506 |
![]() |
#2. 컨트롤 파일을 생성하는 스크립트를 생성
alter database backup controlfile to trace as '/home/oracle/create_controlfile_20240307.sql';
#3. Rman으로 접속해서 control file이 자동백업되도록 설정
rman target sys/oracle nocatalog
configure controlfile autobackup on;
설명 : Rman으로 앞으로 어떤 파일을 백업 받던 백업 받을때 마다 controlfile이 자동백업이 되어진다
위와 같이 설정을 해놓으면 앞으로 DB의 구조가 변경될때마다 Rman이 컨트롤 파일을 자동으로
백업한다
#4. Rman 에서 Datafile중에 아무거나 하나를 백업
backup datafile 1;
컨트롤 파일을 자동으로 백업했다
#5. control을 직접 Rman으로 백업
backup current controlfile;
#6. controlfile의 위치를 확인
@controlfile
#7. shutdown abort
#8. 모든 controlfile을 전부 삭제
oradata
rm *.ctl
#9. startup
#10. shutdown abort
#11. startup nomount
#12. Rman으로 접속
※ 주로 지금까지 mount 상태에서 Rman으로 접속했다
복구는 항상 mount 상태에서 진행해야하기 때문이다
그런데 위와 같이 nomount 상태에서도 Rman으로 접속할 수 있다
#13. control file을 Rman으로 복원
list backup of controlfile; <---mount 상태일때만 확인가능(현재는 nomount 상태)
restore controlfile from autobackup;
자동으로 복구했다 3개의 파일을!
#14. alter database mount로 올린다
alter database mount;
설명 :
control file을 복원했다고 바로 mount가 되는건 아니다. 따로 mount시켜줘야한다
#15. recover database를 수행
recover database;
설명:
복원한 controlfile이 옛날 파일이기 때문에 복구를 해서 최신파일로 만들어줘야한다.
#16. db를 resetlogs를 사용하여 open으로 올린다
alter database open resetlogs;
설명 :
controlfile을 복구한다는것은 교실로치면 그만둔 선생님이 다시 왔다. 수업진도를 다시 맞춰야한다
복구 : 그만둔 선생님이 돌아 왔다.
resetlogs : 수업진도를 다시 맞춰야한다
#17. resetlogs로 DB를 열었으면 반드시 full backup을 수행해야한다
backup database;
문제1. (이수자평가 5번)
control file 3개중에서 2개를 삭제하고 Rman으로 복구하세요
- shutdown 후에 파일 지우기 -> startup
- shutdown abort -> startup nomount
- Rman으로 접속
- control file을 Rman으로 복원
restore controlfile from autobackup;
list backup of controlfile;
select name from v$controlfile;
'백업과 복구 > 백업과 복구(Rman)' 카테고리의 다른 글
Tip. Rman으로 공간확보하기 (0) | 2024.04.15 |
---|---|
31. Rman을 사용해서 모든 datafile과 control file 삭제하고 복구하기 (0) | 2024.04.15 |
29.Rman을 사용해서 모든 data file들을 전부 삭제하고 복구하기 (0) | 2024.04.15 |
28. Rman을 사용해서 system datafile들을 삭제하고 복구하기 (0) | 2024.04.15 |
27. Rman을 사용해서 Non system datafile 손상시 복구하기(open상태) (0) | 2024.04.15 |