오라클 백업 및 복구(Export, Import)

1. export / import
  가. 여러개의 테이블 중에서 특정 table만 백업/복구 하고자 할 때
  나. 오라클의 버전, 플랫폼이 서로 다른 상황에서의 서버간 데이터 이동 시(migration)

2. export 방식
  가. Conventional Path export : Evaluation Buffer를 사용하는 방식, DB Buffer cache에서 필요데이터를 Evaluation Buffer로 복사 후 데이터를 가공(text -> binary)하여 디스크에 파일로 저장함. export 작업 중에 발생하는 DDL, DML 등의 명령들은 백업파일에 반영되지 않는다.(백업 파일은 Evaluation Buffer을 이용하여 작업하기 때문)

  나. Dircet Path export : DB Buffer Cache에서 데이터를 가공(text -> Binary)하여 디스크에 파일로 저장함, export 명령 이후에 백업대상이 되는 테이블스페이스나 테이블에 Lock이 발생하기 때문에 DDL, DML 작업은 실패 또는 보류 된다.

사용자 삽입 이미지

3. export 옵션 및 사용예제
  가. 옵션
    – userid/passwd : export를 수행하는 계정/패스워드
    – buffer : Evaluation Buffer크기 지정(용량이 클 수록 export 작업이 빨라진다)
    – file : export 결과를 저장할 파일명
    – full : 전체 DB를 export 할 것인가 지정
    – owner : export 받을 사용자 이름지정
    – tables : export 받을 테이블 이름 지정
    – tablespaces : exprot 받을 테이블스페이스 이름지정
    – parfile : export 옵션을 미리 지정한 파라미터 파일지정

  나. 사용예제

exp system/oracle full=y file=/backup/export/test01.dmp

exp system/oracle full=y file=/backup/export/test02.dmp direct=y

exp system/oracle tables=emp \
file=(‘/backup/export/test03_1.dmp’, ‘/backup/export/test03_2.dmp’) filesize=10M

exp system/oracle tablespaces=(example, undotbs1) file=/backup/export/test04.dmp

exp system/oracle file=/backup/export/test05.dmp owner=(scott, hr)

exp system/oracle file=/backup/export/test06.dmp full=y buffer=1024000

vi par_full.dat
file=/backup/export/test07.dmp
full=y
direct=y

exp system/oracle parfile=par_full.dat

exp scott/tiger query=\”where ename like \’F%\’\” tables=emp \
file=/backup/export/test07.dmp

4. import 옵션 및 사용예제
  가. 옵션(export의 옵션과 유사하다)
    – userid/passwd : import를 수행하는 계정/패스워드
    – buffer : Evaluation Buffer크기 지정(용량이 클 수록 import 작업이 빨라진다)
    – full : export  파일의 모든 데이터를 import 한다.
    – file : import 할 export 파일명 지정
    – show : 데이터를 import 하지 않고 내용만 확인함
    – ignore : import 작업 중 발생할 수 있는 에러를 무시하고 다음단계의 작업을 진행함
    – fromuser : export 할 당시의 object의 소유자 지정
    – touser : import 할 object의 새 소유자 지정
    – tables : import 할 테이블 이름 지정
    – parfile : import 옵션을 미리 지정한 파라미터 파일지정

  나. 사용예정

imp system/oracle file=/backup/export/test01.dmp ignore=y full=y

imp system/oracle file=/backup/export/test02.dmp \
fromuser=scott touser=hr ignore=y

imp system/oracle file=/backup/export/test03.dmp full=y show=y log=test03.log

참고 : export/import 계정
import 할 때 사용하는 계정은 export 할 때 사용한 계정이어야 한다. 이 계정이 같지 않으면 import 수행 시 오류가 발생한다.만일 export 계정을 잊었다면 덤프파일을 vi 편집기로 열어 확인할 수 있다.(2번째 줄)

참고 : import 작업 중 에러발생 시
import 작업을 진행하던 도중 에러가 발생해 같은 작업을 반복하게 되면, import 대상이 되는 테이블(제약조건이 없는)에 데이터가 중복 저장될 수 있다. 그러므로 같은 작업을 반복시에는 import 대상이 되는 테이블의 내용을 지우고(drop 또는 truncate) 진행해야 한다.

참고 : SYS 계정으로 생성된 Object export
일반적으로 SYS계정에서 생성된 객체는 export 명령어로 백업할 수 없으므로 주의해야 한다.
(단, 경우에 따라서 system 계정으로 백업이 가능하기도 하다)

4. Import 대상 서버에서 필요한 사전 작업
  가. Export 한 서버와 동일한 Tablespace 생성
  나. 충분한 크기의 Temporary Tablespace 확보
  다. Export 한 서버와 동일한 사용자 생성


참고 : 오라클 레퍼런스 사이트

Export and Import Modes : http://docs.oracle.com/cd/B19306_01/server.102/b14215/exp_imp.htm#i1004890

Export Parameters : http://docs.oracle.com/cd/B19306_01/server.102/b14215/exp_imp.htm#CEGFIAGE

Import Parameters : http://docs.oracle.com/cd/B19306_01/server.102/b14215/exp_imp.htm#i1021478  

You may also like...

3 Responses

  1. 에몽이 말해보세요:

    exp, imp할때의 full은 다른 의미이더라구요~
    imp에 full 옵션 설명이 없어서 ㅎㅎ

  2. 기타치는소녀 말해보세요:

    오타 신고합니다~.
    export 예제 부분에서
    file=/backup/export/test07.dmp
    full=y
    dircet=y ———–> direct=y

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다