2013년 8월 14일 수요일

[ORACLEJAVA백업/복구]오라클자바강좌, 오라클취소 기반 복구

Time Base Recovery

오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터


(신입사원채용무료교육, 오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷)  


사용자가 실수로 EMP 테이블을 삭제 하였다고 가정을 하고 복구를 해보도록 하겠습니다. 윈도우 환경이나 유닉스 환경 모두 비슷한 방법이므로 접하기 쉬운 윈도우 환경에서 실습을 하도록 하겠습니다.

복구를 위해 필요한 파일은 cold backup 파일, 백업 이후 생성된 아카이브 로그 파일

------------------------------------------------------------
환경 : Oracle 9.2 윈도우
데이터파일 위치 : c:\oracle oradata\wink
아카이브 로그 폴더 : C:\oracle\ora92\database\archive
백업 파일의 위치 : C:\backup\oradata\wink
-------------------------------------------------------------
(사고를 치기 전에 cold backup 본이 있다는 가정을 합니다.)

1.        emp 테이블을 삭제 하여 사고를 칩니다.

SQL> conn scott/tiger
Connected.
SQL> select count(*) from emp;

  COUNT(*)
----------
        10

SQL> drop table emp;     여기에서 그만 실수를 하군요 -…-  (11시 11분경)

Table dropped.

2.        데이터 베이스를 종료 하고 cold backup을 실시(cold backup은 이전 강좌를 참고하여 하세요…)

SQL>shutdown immediate;

3.        마운트 단계까지 데이터베이스를 시작하고 백업해둔 데이터 파일을 이용하여 복원
(데이터 파일만 복구를 하며 컨트롤 파일, 리두 로그 파일은 복원 하지 않습니다.)
SQL> startup mount
ORACLE instance started.

Total System Global Area  361831504 bytes
Fixed Size                  453712 bytes
Variable Size            343932928 bytes
Database Buffers          16777216 bytes
Redo Buffers                667648 bytes
Database mounted.
SQL>
SQL>
SQL> host copy C:\backup\oradata\wink\*.dbf c:\oracle\oradata\wink\
C:\backup\oradata\wink\AUTO01.DBF
C:\backup\oradata\wink\CWMLITE01.DBF
C:\backup\oradata\wink\DRSYS01.DBF
C:\backup\oradata\wink\EXAMPLE01.DBF
C:\backup\oradata\wink\INDX01.DBF
C:\backup\oradata\wink\LOB_DATA1.DBF
C:\backup\oradata\wink\ODM01.DBF
C:\backup\oradata\wink\REDO01.DBF
C:\backup\oradata\wink\REDO02.DBF
C:\backup\oradata\wink\REDO03.DBF
C:\backup\oradata\wink\SYSTEM01.DBF
C:\backup\oradata\wink\TEMP01.DBF
C:\backup\oradata\wink\TEST01.DBF
C:\backup\oradata\wink\TOOLS01.DBF
C:\backup\oradata\wink\UNDOTBS01.DBF
C:\backup\oradata\wink\users01.dbf
C:\backup\oradata\wink\XDB01.DBF
C:\backup\oradata\wink\XDB02.DBF
      18개 파일이 복사되었습니다.

4.        recover database until time 명령으로 불완전 복구를 합니다. (11시의 상태로 되돌립니다.)


SQL> set autorecovery on
SQL>  recover database until time '2005-04-03 11:00:00';

ORA-00279: change 17475178 generated at 03/27/2005 00:50:52 needed for thread 1
ORA-00289: suggestion : C:\ORACLE\ORA92\DATABASE\ARCHIVE\001_00307.ARC
ORA-00280: change 17475178 for thread 1 is in sequence #307
ORA-00278: log file 'C:\ORACLE\ORA92\DATABASE\ARCHIVE\001_00306.ARC' no longer
needed for this recovery


ORA-00279: change 17490764 generated at 03/27/2005 02:35:12 needed for thread 1
ORA-00289: suggestion : C:\ORACLE\ORA92\DATABASE\ARCHIVE\001_00308.ARC
ORA-00280: change 17490764 for thread 1 is in sequence #308
ORA-00278: log file 'C:\ORACLE\ORA92\DATABASE\ARCHIVE\001_00307.ARC' no longer
needed for this recovery

……….
……….
……….

5.        resetlogs 옵션을 이용하여 DB를 open

SQL>alter database open resetlogs;

6.        정상적으로 복구 되었는지 확인(emp Table이 있는지 확인)

SQL> select count(*) from emp;

  COUNT(*)
----------
        10


7.        DB를 종료 후 cold backup 실시

댓글 없음:

댓글 쓰기