Imcomplete Recovery

 

- 1일에 백업을 받았기에 2일에 생성한 테이블 스페이스와 컨트롤 파일에 대한 백업이 존재하지 않음

- Archive log mode

- Close Backup

- test table 에 대한 tablespace Backup 이 존재하지 않음

- 우선 모든 데이터 파일과 컨트롤 파일, 리두로그 파일을 백업합니다.

- Test 를 위하여 테이블 스페이스를 만들고 데이터를 입력 합니다.

- 현재 test 테이블 스페이스가 있기 때문에 test2 를 만들겠습니다.

 

- 백업이 없는 상태에서 Tablespace 를 drop 을 합니다.

 

- drop tablespace 의 경우 alert_SID.log 파일에서 삭제된 시간을 확인 할 수 있습니다.

 

- 혹은 log miner 를 이용하여도 언제 생성된 테이블이 드롭되었는지도 알 수 있습니다.

 

- 이제 DB를 내리고 Data file 과 Control file 만 Backup 된 것을 가져옵니다.

- Redo log file 은 현재 사용하고 있는 것을 가져와야 합니다.

- 이제 파라미터 파일에서 컨트롤 파일의 경로를 temp2/control_0922.ctl 로 변경해줍니다.

 

- DB 를 mount 상태까지 올린 다음 컨트롤 파일에 기록되어 있는 데이터 파일의 경로를 바꾸어 주어야 합니다.

- 이때 복구가 필요하지 않는 파일은 offline drop 을 이용하여 다시 원래 DB 로 원복 해줄 때 영향이 없도록 해줍니다.

- Redo log 파일의 경로 또한 바꿔줘야 합니다.

-

 

- 이제 복구를 합니다.

SQL>recover database until time '시간' using backup controlfile;

  • 여기서 시간은 alert_SID.log 파일에 기록된 시간 혹은 로그 마이어를 이용하여 찾은 시간을 넣어주시면 됩니다.

     

- 그리고 여기서 현재 current 인 Redo log 파일의 경로를 넣어주시면 됩니다.

 

- 현재 문제가 되는 Tablespace 를 보여 줍니다.

NAME

--------------------------------------------------------------------------------

/data/temp2/system01.dbf

/data/temp/test.dbf

/data/temp2/sysaux01.dbf

/data/temp/users01.dbf

/data/temp/example01.dbf

/data/temp/insa.dbf

/data/temp/haksa01.dbf

/data/temp2/undo01.dbf

/home/oracle/product/10g/dbs/UNNAMED00009 <- 새로 생성됨

 

9 rows selected.

 

SQL> alter database create datafile '/home/oracle/product/10g/dbs/UNNAMED00009'

2 as '/data/temp2/test2.dbf';

 

Database altered.

 

SQL>

 

- 다시 한번 복구 명령어를 실행해 줍니다.

 

SQL>alter database open resetlogs; 명령어를 이용하여 DB 를 open 시킵니다.

이 때 주의할 점은 resetlogs 로 open 을 하게되면 redo log 의 scn 이 초기화가 되어 다시는 복구를 위하여 사용할 수가 없습니다. 그렇기 때문에 redo 로그 파일도 오류가 발생한 시점에서 사용하기 전에 다시한번 따로 백업을 하여 올렸을 때 다시 사용할 수 있도록 해야 한다는 것입니다.

 

- 또한 DB 를 resetlogs 로 올리기 전에 복구를 위한 사항들을 모두 확인하고 올리시기를 바랍니다.

 

 

정상적으로 복구가 된 것을 확인 할 수 있습니다.

- 참고도서 -

실전! 오라클 백업과 복구
국내도서>컴퓨터/인터넷
저자 : 서진수
출판 : 생능출판사 2010.09.06
상세보기

'Oracle > Backup&Recover' 카테고리의 다른 글

Datapump Expdp (first)  (0) 2011.09.28
Export and Import (특정 Tablespace)  (0) 2011.09.28
Log Miner 에 Archive log file 등록하는 script  (0) 2011.09.27
Log Miner && Supplemental Logging 설정  (0) 2011.09.27
Open Backup  (0) 2011.09.27

Log Miner 에 Archive log file 등록하는 script

- 원하는 경로의 아카이브 파일이나 redo log 파일을 쉽게 등록할 수 있다.

For i in $(ls 경로);

Do echo "exec dbms_logmnr.add_logfile('archive file 경로/$i')" >> addarc.sql;

Done;



2011/09/27 - [Oracle/Recovery] - Log Miner && Supplemental Logging 설정

Log Miner

- Redo log file 에 있는 내용을 추출해서 SQL 문장으로 변환해 주는 유틸리티

1. log miner 는 8i 이후 버전에서만 작동

2. 분석 대상 인스턴스와 같은 플랫폼에서 동작하는 같은 캐릭터셋을 사용하는 DB에서 생성된 Redo log file 만 분석

3. 분석 대상 인스턴스와 Redo log 가 생성된 인스턴스는 DB_BLOCK_SIZE 가 동일해야 함

- 만약 다를 경우 Corruption 이 발생했다는 내용이 기록

 

Supplemental Logging

- 데이터에 DML 이 밸생할 경우 redo log 에 추가적인 내용을 기록하여 복구에 도움을 주기에 항시 사용함으로 설정하기를 권장

 

SQL>seleclt supplemental_log_data_min from v$database;

 

SUPPLEMENTAL_LOG

------------------------

NO

 

SQL>alter database add supplemental log data;

Database altered.

 

SQL>select supplemental_log_data_min from v$database;

 

SUPPLEMENTAL_LOG

------------------------

YES

 

- 비활성

SQL>select supplemental

SQL>alter database drop supplemental log data;

SUPPLEMENTAL_LOG

------------------------

NO

 

- 특정 테이블만 적용할 수도 있습니다.

SQL>alter table scott.emp add supplemental log data (all) columns;

Table altered.

 

- 이 기능을 사용할 경우 redo log 의 생셩 양이 많아지기 때문에 아카이브 로그 모드를 사용할 경우 아카이브 경로를 충분하게 주어야 함.

+ Recent posts