Oracle/Admin

클론DB로 drop된 테이블 복구

알 수 없는 사용자 2015. 6. 24. 21:30

백업된 데이터파일로 클론DB를 만들어 완전히 삭제된 테이블을 복구할 수 있다.

  • 전체 데이터파일 복구
    • DB종료 후 전체 백업을 한다.

       

    • SCOTT 유저로 테이블을 생성하여 데이터를 입력하고 커밋된 시점의 시간을 확인한다.

       

    • 다시 데이터를 입력하고 커밋된 시점의 시간을 확인한다. (입력된 데이터 b까지 복구)

       

    • 아카이브 로그로 쌓일 수 있도록 로그 스위치를 발생신킨다. (resetlogs로 복구하기 때문에 변경된 내용이 아카이브 로그에 없으면 복구가 불가능하다.)

       

    • 테이블을 완전히 삭제한다.

       

    • 기존에 사용하던 파라미터 파일 (PFILE 이용)을 복사하여 클론DB용 파라미터 파일을 생성하고, 클론DB의 컨트롤파일 경로와 DB명을 변경한다.

       

       

    • 백업된 데이터파일을 클론DB의 경로로 복사한다.

       

    • 클론DB의 컨트롤파일을 생성하기 위한 DDL문을 생성하고 경로를 변경한다.

       

       

    • ORACLE의 SID를 CLONE으로 변경한다.

       

    • DB에 접속 후 컨트롤파일을 재생성한다.

       

    • 데이터 b 까지 복구하기 위해 시간기반으로 복구한다.

       

    • resetlogs로 DB를 오픈한다.

       

    • 데이터 복구를 확인한다.

       

  • 특정 데이터파일 복구
    • 전체 데이터파일이 아닌 drop된 테이블이 저장된 데이터파일만 복구할 때, 컨트롤파일 생성문에서 필수 데이터파일 이외의 파일은 삭제한다.

       

    • DB에 접속 후 컨트롤파일을 재생성한다.

       

    • 데이터파일을 확인한다.

       

    • 데이터 b 까지 복구하기 위해 시간기반으로 복구한다.

       

    • resetlogs로 DB를 오픈한다.

       

    • 컨트롤파일 재생성문에서 제거했던 users와 example에 해당하는 데이터파일은 복구가 되지 않는 것을 확인할 수 있다.

       

    • 복구된 데이터를 확인한다.

       

    • 메모리 부족으로 ORA-00845 에러가 날 경우

 

  • DB link로 데이터 이관
    • tnsnames.ora 파일을 수정한다.

       

    • listener.ora 파일을 수정한다.

       

    • clonedb로 tnsping이 날라가는지 확인한다.

       

    • database link를 생성한다.

       

    • 삭제한 테이블을 생성하여 데이터를 이관한다.

 

 

 

 

 

 

 

 

 

 

'Oracle > Admin' 카테고리의 다른 글

ORACLE AUDIT  (0) 2015.07.06
USER 및 PROFILE 생성  (0) 2015.07.01
데이터파일 백업 및 복구  (0) 2015.06.15
Oracle EXPDP/IMPDP[정리필요]  (0) 2015.06.15
sqlnet.ora와 tnsnames.ora  (0) 2015.06.10