DB백업하기

<<Controlfile 손실시 복구>>
[상황] Controlfile이 3개로 다중화되어 있는데 특정 member가 손실된 경우

1. DB 종료   SQL> shut abort
2. 손실된 Controlfile을 남아있는 Member를 사용해서 복구함
$] cp /u01/app/.../o1_mf_8o4mb7xl_.ctl /u01/app/.../o1_mf_8o4mb7xl_.ctl
3. DB 시작   SQL> startup


<<Alert log file>>
- DB마다 반드시 존재하는 파일
- DB생성시 자동으로 만들어지는 파일
- 위치 : background_dump_dest
- 이름 : alert_SID.log (ex)alert_orcl.log
- DB에서 발생된 주요 관리 작업(DBA, oracle / 성공한 작업, 실패한 작업) 내역이 시간순으로 기록되어있는곳
- 보는 방법 : $} tail -50 alert_orcl.log



<<Datafile 손실시 복구>>
Datafile Recovery = Restore(복원) + Recover(복구)

[Case1] Non-critical Datafile(일반 Datafile) 손실 시 복구
**user01.dbf (file#4) 손실된 경우
1. DB시작중 오류 (mount 상태, open X)
2. 손실된 Datafile만 Offline 시킴
SQL> alter database datafile 4 offline;
3. DB open 시킴(DB 가용성)
SQL alter database open;
4. restore : 손실된 Datafile만 복원
$] cp /home/oracle/backup/user01.dbf /u01/app/oracle/oradata/ORCL/datafile/user01.dbf
5. recover : 복원된 Datafile만 복구(부분 DB 복구)
SQL> recover datafile 4;
6. Datafile Online 시킴
SQL> alter database datafile 4 online;


[Case2] critical Datafile(필수 Datafile - system, undo) 손실 시 복구
**system01.dbf(file# 1) 손실
1. DB 시작 중 오류(mount 상태, open X)
2. DB가 mount되어 있는 상태에서 Datafile Recovery 진행함
3. restore : 손실된 Datafile만 복원
$] cp /home/oracle/backup/system01.dbf /u01/app/.../datafile/system01.dbf
4. recover : 모든 Datafile 복구(전체 DB 복구)
SQL> recover database;
5.DB open시킴
SQL> alter database open;

댓글