02.Oracle/DataBase

[oracle] Oracle Backup & Restore

1010 2008. 11. 24. 17:58
반응형

  1. 백업과 복구의 종류
        백업방법
        - 물리적 방법  ( Physical Mode ) : OS에서 제공하고 있는 복사 명령어
        - 논리적 방법 ( Logical Mode ) : 오라클 사에서 제공하는 Export 유틸리티를 통한  파일 복사 방법

        복구방법
        - 노-아카이브 모드 ( no-Archive Mode )
            : 로그버퍼 영역과 redo 로그 파일에 저장된 내용을 복구 하는 방법 ( 오라클 설치 후 기본 설정 값 )
           
        - 아카이브 모드 ( Archive Mode )
            * 완전 복구 ( Complete Recovery )
                : DB의 문제가 발생한 시점까지의 복구 방법

            * 불완전 복구 ( In-Complete Recovery )
                :  DB의 문제가 발생한 시점까지 복구가 안되고 정적인 백업자료를 복구


    2. Hang-up 상태인 경우 오라클 서버 재부팅 하도록 함

DB Backup

  1. 물리적 방법 백업
        사전 준비 단계 
        - 이 방법으로 백업을 하기 위해서는 반드시 Oracle 을 Shutdown 시켜야 한다.
        - SQL>shutdown [ 옵션 ]
        - 옵션 : Normal, Transactional, immediate 

        파일 복사
        - 아래의 저장된 데이터베이스 파일을 별도의 백업 폴더로 복사 한다.
    datafiles.jpg
  2.  
  3. Export 유틸리티 사용 
        사전 준비 단계  ( 백업 위치가 클라이언트 인 경우 )
        - 오라클 클라이언트 버전 10g R2 (설치 옵션 - 관리자) 버전으로 설치 하여야 함 

        전체 백업방법 ( 자세한 사항은 오라클 유틸리티 매뉴얼을 참조 ) 
                - exp userid=계정명/패스워드@TNS명 file=백업된파일 저장위치 log=백업과정의 로그 정보 저장 위치 
        : indexes=yes(no)
        : grants=yes(no)
        : contraints=yes(no)

                - 예) exp userid=erprail/erprail@RAIL file=C:\erprail_mon.dmp log=D:\erprail_mon.log

        일부 백업방법
                - exp 계정명/패스워드@TNS명 file=백업된파일 저장위치 log=백업과정의 로그 정보 저장 위치 tables=백업할 테이블명

                - 예) exp userid=erprail/erprail@RAIL file=C:\erprail_mon.dmp log=D:\erprail_mon.log  tables=p1_master,p0_dept


    2. Export 퀵 사용법  -  exp 계정명/패스워드
        1) 인출버퍼 사이즈 조정
        2) Export 될 파일명 지정
        3) 전체, 사용자, 테이블 선택 라인
        4) 완료

    3. HELP 보는 방법
       C:> EXP HELP=Y

 

DB Restore

  1. No-Archive Mode ( 노 – 아카이브 모드 )
       : 사용자 들의 Insert/Update/Delete 작업을 수행 할 때 마다 모든 변경 전 데이터와 변경 후 데이터를 Redo Log 버퍼에 저장 함

        설정확인 방법 ( SQL  PLUS )
        - SQL> ARCHIVE   LOG   LIST
        - SQL> SELECT GROUP#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;
    restore1.jpg

 

  1. 오프라인 복구 방법  
        백업 1 에서 한 물리적 파일을 전부 재 설치

         참고 Page 43 ~ 46 ( 백업 복구 가이드 )
    restore2.jpg
  2. 아카이브 모드 환경 설정
        initSID.ora 변수 설정 
        - LOG_ARCHIVE_START : ARCH 백그라운드 프로세스에 의해 아카이브 모드 전황 및 자동 실행 처리 설정
        - LOG_ARCHIVE_DEPT : Redo 로그 파일에 대한 아카이브  파일이 생성될 기본 위치
        - LOG_ARCHIVE_DEPT_n : 아카이브 경로를 여러군데로 지정할 때 사용
        - LOG_ARCHIVE_FORMAT : 아카이브 파일의 포멧을 결정

       설정확인 방법 ( SQL  PLUS )
                 - SQL> ARCHIVE   LOG   LIST
                 - SQL> SELECT GROUP#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;

      복구 방법
                - 전체 완전 복구  : MOUNT 단계의 복구 작업    (   백업 및 복구 가이드 매뉴얼 52 ~ 55 Page 참조 )
                - 테이블스페이스 완전 복구 : OPEN 단계의 복구 작업 ( 백업 및 복구 가이드 매뉴얼 56 ~ 58 Page 참조 )
                - 데이터 완전 복구 : OPEN 단계의 복구 작업 ( 백업 및 복구 가이드 매뉴얼 59 ~ 63 Page 참조 )

 

1. Import 유틸리티 사용 
     Export 를 사용하여 백업을 받은 경우 처리 할 수 있는 방법 
     Import 방법 ( 자세한 사항은 오라클 유틸리티 매뉴얼을 참조 ) 
            - imp 오라클사용자명/암호@TNS명 file=덤프파일명 fromuser=ExportID touser=ImportID ignore=yes

            - 예) imp userid=erprail/erprail@RAIL file=C:\erprail_mon.dmp fromuser=erprail touser=erprail ignore=yes

    일반적 경고
            - 1) Export 사용자와 Import 사용자의 ID가 틀린 경우
            - 2) Export 객체들의 테이블 스페이스와 Import 테이블 스페이스 이름이 다른 경우
            - 3) Export 테이블스페이스 스토리지 옵션과 덤프할 데이터가 맞지 않은 경우 ( Initial 사이즈가 너무 크거나 작다거나 등 )


    일반적 경고 해결 방법
            - 2) 덤프 파일에서 테이블 생성 스크립트 추출하기 : imp 명령의 indexfile 옵션을 이용한다
                  : imp 사용자명/암호@TNS명 file=덤프파일이름 fromuser=Export사용자ID touser=ImportID indexfile=ScriptFile

    - 3) Spool / TAB View 를 활용 하여 처리 함
                  : spool drop.sql ( 파일 명 임  ) select 'drop table '||table_name||';' from tabs; spool off     ( 실행방법 @파일명 임 )
                  : 실행도중 Referencial Integrity Error 발생시 수동 Drop 을 시켜 주면서 복구




출처 : http://gtko.springnote.com/pages/723356