Oracle/백업&복구
복구시나리오 종합(drop tablespace장애(백업 전 생성, 백업 후 생성), 사용자 실수로 지운 drop table 복구 (logmnr error 포함)
에몽이ㅋ
2012. 2. 8. 07:13
--------------------------------------------------------------------------------------------장애 |
|||||
▼ |
▼ |
▼ |
▼ |
▼ |
▼(장애) |
A tbs 생성 |
백업 받았음 |
B tbs 생성 |
A,B tbs에 test_a,b table생성 (생성후 자료insert) |
test_a,b 실수로 drop |
모든 Datafile, Ctlfile 삭제됨 |
위 시나리오 요약 및 복구목적
1. A tbs 생성 이후 switch logfile
2. 백업
3. B tbs 생성 이후 switch logfile
4. A,B tbs에 test_a,b table생성 후 자료 insert (commit 후 switch logfile)
5. datafile, contorl file 모두 삭제됨
복구 목적 : DB OPEN, 실수로 drop 한 table 불완전복구( 위 그림에서 5번째 ▼ 이전으로 )
5. 복구확인
실습 DB 설명
2. 백업
4. A,B tbs에 test_a,b table생성 후 자료 insert (commit 후 switch logfile)
해결
1. 임시경로에 백업된 datafile, control file, 현재 redolog file을 임시경로로 RESTORE
2. alter database rename으로 임시경로로 DB셋팅
3. logmnr이용해서 test_a,b drop된 시간 검색
4. 복구시도
1. 해결3번에서 찾은 시간으로 recover 한번 실행하면 control file에 A tbs정보가 입력됨
2. 입력된 tbs 정보를 임시경로로 datafile 지정
3. 다시 복구 시도(해결3번에서 찾은 시간으로 불완전 복구)5. 복구확인
실습 DB 설명
모든 datafile, controlfile, redo log file은
/home/oracle/oradata/testdb/안에 저장되어 있습니다.
복구를 위해 Archive log mode입니다.
복구를 위해 Archive log mode입니다.
-----------------------------------------------------------------------
-------------------실습시작--------------------------------------------
-----------------------------------------------------------------------
1. A tbs 생성 이후 switch logfile
1 create tablespace a 2* datafile '/home/oracle/oradata/testdb/a01.dbf' size 5m SQL> / Tablespace created.
-----------------------------------------------------------------------
-----------------------------------------------------------------------
-----------------------------------------------------------------------
2. 백업
SQL> !sh ~/main_backup.sh set begin backup mode~~ real 0m0.658s user 0m0.037s sys 0m0.050s end begin backup mode-- start file copy.… real 0m41.002s user 0m0.118s sys 0m6.353s end file copy~ set end backup mode~~ real 0m2.002s user 0m0.033s sys 0m0.050s complete hot backup~!!
-----------------------------------------------------------------------
-----------------------------------------------------------------------
-----------------------------------------------------------------------
3. B tbs 생성 이후 switch logfile
3. B tbs 생성 이후 switch logfile
SQL> create tablespace b 2 datafile '/home/oracle/oradata/testdb/b01.dbf' size 5M; Tablespace created. SQL> alter system switch logfile; System altered. SQL> / System altered. SQL> / System altered. SQL> / System altered. SQL> / System altered.
-----------------------------------------------------------------------
-----------------------------------------------------------------------
-----------------------------------------------------------------------4. A,B tbs에 test_a,b table생성 후 자료 insert (commit 후 switch logfile)