본문 바로가기
oracle/[Recovery] Data File

[Data File 장애복구-DDL장애] drop table 명령에 의해 삭제된 Table 복구

by #moonyz 2014. 11. 3.

1. 현재 사용하고 있는 Data File, Redo Log File, Control File 확인

SQL > select name from v$controlfile;

SQL > select name from v$datafile;

SQL > select member from v$logfile;



2. 백업 (close backup)

DB 종료 -> 백업 -> DB open



3. users 테이블 스페이스에 테스트용 테이블 생성후 데이터 입력

- 데이터가 존재하는 시간 확인 : SQL > select to_char(sysdate, 'YYYY-MM-DD:HH24:MI:SS') from dual ;

- 테스트이기 때문에 복구할 시간을 검색하여 복구시점을 알아내지만 현장에서는 복구시점을 알기위해서 log miner 사용해야함



4. 테스트할 테이블을 drop table 시켜 장애 발생시킴.



5. 임시디렉토리를 만들어 복구에 필요한 파일을 임시디렉토리에 복사

- 원본데이터를 보존하기 위해서 임시경로를 만들어 복사한후 복구 수행



6. $ vi $ORACLE_HOME/dbs/inittestdb.ora 수정

- 파라미터 파일을 수정하여 control file 경로를 임시 복구 경로로 지정



7. mount 상태로 open

SQL > starup mount;



8. data file의 경로를 복구 경로로 위치 변경 

SQL > alter database rename file '이전 data file 경로' to '복구경로';



9. redo log file의 경로를 복구 경로로 위치 변경 

SQL > alter database rename file '기존 리두로그 경로' to '복구경로';



10. 복구 후 확인

SQL > recover database until time '복구할 시간';

SQL > alter database open resetlogs;

댓글