1. export / import
가. 여러개의 테이블 중에서 특정 table만 백업/복구 하고자 할 때
나. 오라클의 버전, 플랫폼이 서로 다른 상황에서의 서버간 데이터 이동 시(migration)
2. export 방식
- Conventional Path export : Evaluation Buffer를 사용하는 방식, DB Buffer cache에서 필요데이터를 Evaluation Buffer로 복사 후 데이터를 가공(text -> binary)하여 디스크에 파일로 저장함. export 작업 중에 발생하는 DDL, DML 등의 명령들은 백업파일에 반영되지 않는다.(백업 파일은 Evaluation Buffer을 이용하여 작업하기 때문)
- Direct Path export : DB Buffer Cache에서 데이터를 가공(text -> Binary)하여 디스크에 파일로 저장함, export 명령 이후에 백업대상이 되는 테이블스페이스나 테이블에 Lock이 발생하기 때문에 DDL, DML 작업은 실패 또는 보류 된다.
Export 시 direct 모드의 사용은 파라미터 DIRECT=Y 로 설정될 수 있다. Direct Path Export는 인스턴스의 다른 자원들과 경쟁하지 않으며 세션에 의해 사용되는 private area로 데이터 블록을 읽어 들인다.
3. export 옵션 및 사용예제
Export 파라미터
- userid/passwd : export를 수행하는 계정/패스워드
- buffer : Evaluation Buffer크기 지정(용량이 클 수록 export 작업이 빨라진다)
- file : export 결과를 저장할 파일명
- full : 전체 DB를 export 할 것인가 지정
exp system/oracle full=y file=/backup/export/test02.dmp direct=y
- tables : export 받을 테이블 이름 지정
ex) exp userid=system/manager tables=(emp, dept, salgrade)
exp userid=system/manager tables=(scott.emp%)
- tablespaces : exprot 받을 테이블스페이스 이름지정
- parfile : export 옵션을 미리 지정한 파라미터 파일지정
- query : 테이블의 특정 부분만을 Export 하기 위해서 사용 한다
ex) exp scott/tiger query=\"where ename like \'F%\'\" tables=emp \ file=/export/test07.dmp
- rows : Export Dump 파일에 테이블 행(데이터) 포함 여부 표시 (Y)es/(N)o (default값은 y)
만약 테이블 구조만 export하고 실제 row data는 백업을 원하지 않는 경우에는 rows=n 이라고 명시 한다.
4. import 옵션 및 사용예제
Import 파라미터
- userid/passwd : import를 수행하는 계정/패스워드
- buffer : Evaluation Buffer크기 지정(용량이 클 수록 import 작업이 빨라진다)
- full : export 파일의 모든 데이터를 import 한다.
- file : import 할 export 파일명 지정
- show : 데이터를 import 하지 않고 내용만 확인함
- ignore : import 작업 중 발생할 수 있는 에러를 무시하고 다음단계의 작업을 진행함
- touser : import 할 object의 새 소유자 지정
- tables : import 할 테이블 이름 지정
Import 대상 서버에서 필요한 사전 작업
- Export 한 서버와 동일한 Tablespace 생성
- 충분한 크기의 Temporary Tablespace 확보
- Export 한 서버와 동일한 사용자 생성
참고 : export/import 계정
import 할 때 사용하는 계정은 export 할 때 사용한 계정이어야 한다. 이 계정이 같지 않으면 import 수행 시 오류가 발생한다.만일 export 계정을 잊었다면 덤프파일을 vi 편집기로 열어 확인할 수 있다.(2번째 줄)
import 작업을 진행하던 도중 에러가 발생해 같은 작업을 반복하게 되면, import 대상이 되는 테이블(제약조건이 없는)에 데이터가 중복 저장될 수 있다. 그러므로 같은 작업을 반복시에는 import 대상이 되는 테이블의 내용을 지우고(drop 또는 truncate) 진행해야 한다.
참고 : SYS 계정으로 생성된 Object export
일반적으로 SYS계정에서 생성된 객체는 export 명령어로 백업할 수 없으므로 주의해야 한다.
(단, 경우에 따라서 system 계정으로 백업이 가능하기도 하다)
참조 : http://www.jigi.net/4243, http://zolf.egloos.com/3351113
'Programming > DB관련' 카테고리의 다른 글
INDEX (인덱스) (0) | 2013.09.10 |
---|---|
SQL LOADER란? (0) | 2013.04.24 |
DELETE, DROP, TRUNCATE의 비교 (0) | 2013.04.24 |
Character Functions (문자형 함수) (0) | 2012.11.12 |
DECODE 함수 (ORACLE) (0) | 2012.11.12 |