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

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

by #moonyz 2014. 11. 3.

[작업순서]

1. 전체 닫힌 백업 수행 /data/backup/close/

2. 테스트용 테이블스페이스와 테이블 생성

3. 데이터파일 삭제 및 truncate table

4. 임시경로를 생성 필요한 파일 준비

data file -> 백업해둔 파일 임시경로로 복원

redo log file, control file -> 현재사용하고 있는 파일 임시경로로 복사

5. parameter file을 vi로 열어서 control file의 위치를 임시복구경로로 수정

$vi $ORACLE_HOME/dbs/inittestdb.ora

6. 복구를 위해 생성한 임시경로로 redo log file, control file 경로 변경

alter database rename file '기존경로' to '복구할임시경로';

7. 삭제된 data file (test_trunc01.dbf) 경로 재설정 및 재생성 (중요! 데이터파일이 존재하지 않고, 백업파일이 없음)

alter database create datafile '기존경로' as '재생성할 경로'

8. 테이블이 존재했던 시간으로 복구 

recover database until time '복구할시간'

9. resetlogs로 DB OPEN

alter database open resetlogs;

10. 데이터 복구 확인




1. 백업하기위해 현재사용하고 있는 data file, control file, redo log file 확인 



2. DB 전체 close backup 수행



3. 테스트용 테이블스페이스와 테이블 생성 및 데이터 입력



4. 데이터 파일 삭제, truncate table 장애 발생



5. 복구할 임시경로를 생성하여 필요한 파일 복사

data file -> 백업해둔 data file 복원

redo log file과 control file -> 현재사용하고있는 파일 복사



6. 복구할 임시 경로로 파일위치를 변경하기 위해서 DB shutdown



7. parameter file을 vi로 열어서 컨트롤 파일 위치를 복구 경로로 수정



8. data file 경로 수정 및 삭제된 data file 재생성

SQL > alter database rename file '기존경로' to '복구할경로'; --파일위치 재설정

SQL > alter database create datafile '기존경로' as '재생성할경로'; --삭제된 data file 경로설정 및 파일 재성성



9. redo log file의 경로를 복구경로로 위치 재설정



10. 데이터 복구

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

SQL > alter database open resetlogs; --불완전복구를 했으므로 resetlogs로 오픈


댓글