1. Clone DB와 exp/imp를 이용한 drop table 복구.

 

 

 * 전제 조건 

 - 백업 파일 경로 : /data/backup/close/

 - 운영DB SID : testdb

 - clone DB SID : clonedb (복구용 DB)

 - clone DB 파일 경로 : /data/temp/clone/

 

  * 복구 순서 요약

 

 1. clonedb용 파라미터 파일 생성.(pfile을 사용)

  $cp inittestdb.ora initclonedb.ora

  $vi initclonedb.ora  -- db이름과 controlfile 경로 등등을 수정하고, memory_target값은 주석처리한다.

 2. 백업 데이터 파일 복원.

  $mkdir -p /data/temp/clone

  $cp /data/backup/close/* /dat/temp/clone/

 3. 컨트롤 파일 재생성. (운영서버에서 진행)

  SYS> alter databse backup controlfile to trace as '/app/oracle/re.sql';

  $ vi /app/oracle/re2.sql -- 스크립트 수정 (logfile, data file 경로수정, controlfile set database "clonedb" resetlogs  로 수정)

 4. 불완전 복구 시작. (★clonedb 서버에서 진행★)

  SYS> @/app/oracle/re2.sql --스크립트 실행.

  SYS> recover database until time '2013-12-17:04:30:55' using backup controlfile;

  SYS> alter databse open resetlogs;

 5. 복구 완료되면 clonedb서버에서 export후, 운영서버에 import 수행.

  $ export ORACLE_SID=clonedb

  $ exp scott/tiger file=gogak.dmp tables=gogak

  $ export ORACLE_SID=testdb

  $ imp scott/tiger=gogak.dmp

 6. 운영서버에서 복구 확인.

  SYS> select count(*) from scott.gogak;

 

 

 

Step1. 장애 상황 만들기.

1. tablespace를 생성 한 뒤 db를 종료하고, 전체 백업을 받는다.

 

2. scott계정으로 접속한다. sys계정으로 table을 생성하면 안된다.

 

3. table을 생성하고, loop돌려서 값을 넣는다.

 

4. table을 조회하면 100건 조회된다.

 

5. commit 쳐서 내용을 저장한 후, 시간을 확보한 다음에 table을 drop한다.

 

6. log switch를 일으켜서, redo log file에 있는 내용을 지우고, archive redo log로 내려써서 저장한다.

 

 

step2. 복구 서버(clonedb)용 파라미터 파일 생성.

1. 기존 운영 서버의 파라미터파일을 복사해서 clonedb용 파라미터 파일을 생성한다.

 

2. 해당 파라미터 파일의 내용을 수정한다. control file 경로와 db이름을 수정하고, 11g부터는 memory target 값을 주석처리 해야한다.

 

step3. clone DB용 control file 생성.

1. control file을 생성하기 위해 백업 파일에서 데이터파일을 먼저 복원한 후, conrol file을 재생성하기 위한 생성 스크립트를 운영 DB에서 만든다.

 

2. control file 생성 스크립트를 수정한다. 

- 위 아래 불필요한 주석은 지우고, data file의 경로를 수정해주고, control file set database 'clonedb' resetlogs 로 수정해준다.

 

** 새터미널 창을 열어 cloneDB용 터미널로 사용하겠습니다.

>export ORACLE_SID=clonedb

 

3. clonedb 서버에서 control file 생성 스크립트를 실행시켜준다.

 

 step4. drop된 gogak2 테이블을 복구.

1. drop 되기 전의 시간으로 복구를 한 후, db를 reset logs 옵션으로 open 해준다.

 

2. clonedb서버에서 복구 완료된 것을 확인.

 

 

step5. 복구된 gogak2 텡블을 운영서버(testdb)로 이동합니다.

1. cloneDB 서버에서 export한다.

 

 2. testdb서버에서 import한다.

 

 3. 운영서버에서도 정상적으로 조회됨.

 

Print Friendly and PDF Posted by JJ*
: