백업된 Control File을 이용한 복구
사용자의 실수로 테이블스페이스가 삭제 되는 경우 현재 Control File 에서 이 TableSpace에 대한 정보가 삭제 되므로 현재 시스템의 Control File을 이용해서 복구가 불가능 합니다. 그러므로 Control File에 대한 백업 본을 이용하여 복구를 하는 거죠^^
복구과정 소개
1. 관리자는 테이블스페이스가 삭제 되었다는 사실을 확인 후 모든 사용자들에게 최근 입력한 데이터에 대해 보존하며 더 이상 데이터를 입력하지 않도록 알립니다.
- 가능하다면 각 사용자의 데이터를 백업 받도록 알리며
- 시스템을 제한된 세션 모드로 변경도 가능 합니다.
SQL>alter system enable restricted session;
2. 경고 로그 파일(alert file)을 Open하여 해당 테이블스페이스가 삭제된 시간을 알아냅니다.
- $ORACLE_HOME/admin/bdump/alert_WINK.log 확인(각자 시스템의 환경에 따라 위치가 다를 수 있습니다.)
-
…… Mon April 18 10:45:45 이 부분을 확인
Drop tablespace users
Completed : drop tablespace users
3. DB를 종료하고 현재 DB의 모든 파일들을 임시 디렉토리에 백업 받습니다.
SQL>shutdown immediate;
SQL>host copy c:\oracle\oradata\wink\*.dbf c:\imsi
4. 과거에 백업 받은 cols back본을 이용하여 복구 합니다. (Redo Log File은 복구 하지 않습니다.)
SQL>host copy c:\backup\wink\*.dbf c:\oracle\oradata\wink
SQL> host copy c:\backup\wink\*.ctl c:\oracle\oradata\wink
5. Mount 상태에서 recover 명령을 이용하여 2005년 4월18일 10시 44분까지 복구 합니다.
SQL>startup mount;
SQL>recover database until time ‘2005-04-18 10:44:00’
using backup controlfiles
6. resetlogs 옵션을 이용하여 DB Open
SQL>alter database open resetlogs;
7. 복구가 되었는지 확인 후… 정상적으로 복구가 되었으면 전체 DB를 cold backup 받습니다. (cold back에 관한 방법은 이전 강좌의 내용을 참고 하세요~) 그리고 모든 사용자에게 10시44분 이후에 입력한 데이터는 다시 입력하도록 알립니다.
(주의 : 반드시 cold backup 받아둔 데이터파일과 컨트롤 파일을 복사(복원) 후 DB를 마운트 단계까지 실행해야 합니다. 만약 백업된 컨트롤 파일이 복사되기 전에 DB를 마운트 단계까지 실행한다면 컨트롤 파일의 정보가 맞지 않아 복구 실패 되니 주의 바랍니다. )
사용자의 실수로 테이블스페이스가 삭제 되는 경우 현재 Control File 에서 이 TableSpace에 대한 정보가 삭제 되므로 현재 시스템의 Control File을 이용해서 복구가 불가능 합니다. 그러므로 Control File에 대한 백업 본을 이용하여 복구를 하는 거죠^^
복구과정 소개
1. 관리자는 테이블스페이스가 삭제 되었다는 사실을 확인 후 모든 사용자들에게 최근 입력한 데이터에 대해 보존하며 더 이상 데이터를 입력하지 않도록 알립니다.
- 가능하다면 각 사용자의 데이터를 백업 받도록 알리며
- 시스템을 제한된 세션 모드로 변경도 가능 합니다.
SQL>alter system enable restricted session;
2. 경고 로그 파일(alert file)을 Open하여 해당 테이블스페이스가 삭제된 시간을 알아냅니다.
- $ORACLE_HOME/admin/bdump/alert_WINK.log 확인(각자 시스템의 환경에 따라 위치가 다를 수 있습니다.)
-
…… Mon April 18 10:45:45 이 부분을 확인
Drop tablespace users
Completed : drop tablespace users
3. DB를 종료하고 현재 DB의 모든 파일들을 임시 디렉토리에 백업 받습니다.
SQL>shutdown immediate;
SQL>host copy c:\oracle\oradata\wink\*.dbf c:\imsi
4. 과거에 백업 받은 cols back본을 이용하여 복구 합니다. (Redo Log File은 복구 하지 않습니다.)
SQL>host copy c:\backup\wink\*.dbf c:\oracle\oradata\wink
SQL> host copy c:\backup\wink\*.ctl c:\oracle\oradata\wink
5. Mount 상태에서 recover 명령을 이용하여 2005년 4월18일 10시 44분까지 복구 합니다.
SQL>startup mount;
SQL>recover database until time ‘2005-04-18 10:44:00’
using backup controlfiles
6. resetlogs 옵션을 이용하여 DB Open
SQL>alter database open resetlogs;
7. 복구가 되었는지 확인 후… 정상적으로 복구가 되었으면 전체 DB를 cold backup 받습니다. (cold back에 관한 방법은 이전 강좌의 내용을 참고 하세요~) 그리고 모든 사용자에게 10시44분 이후에 입력한 데이터는 다시 입력하도록 알립니다.
(주의 : 반드시 cold backup 받아둔 데이터파일과 컨트롤 파일을 복사(복원) 후 DB를 마운트 단계까지 실행해야 합니다. 만약 백업된 컨트롤 파일이 복사되기 전에 DB를 마운트 단계까지 실행한다면 컨트롤 파일의 정보가 맞지 않아 복구 실패 되니 주의 바랍니다. )
기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2022 | ||
[채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1478 | ||
53 | [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… | 03-15 | 1233 | |
52 | [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍 | 01-31 | 1392 | |
51 | [평일,기업100%환급]SQL기초에서 Schema Object까지 | 01-31 | 1254 | |
50 | [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 | 01-31 | 1083 | |
49 | [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 | 01-19 | 1395 | |
48 | [평일주간,평일야간,주말]안드로이드개발자과정 | 01-11 | 1225 | |
47 | [평일야간,주말주간]JAVA,Network&JSP&Spring,MyBatis,Hibernate | 01-03 | 1724 | |
46 | 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2022 | |
45 | [기업100%환급,평일주간]자바기초에서 JDBC, Servlet/JSP까지 | 12-19 | 1491 | |
44 | [평일야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,Jav… | 12-14 | 1468 | |
43 | [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1478 | |
42 | [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 | 12-09 | 1182 | |
41 | [평일야간, 주말]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 | 12-01 | 1396 | |
40 | [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… | 12-01 | 1544 | |
39 | [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) | 12-01 | 1050 |
댓글 없음:
댓글 쓰기