학습자료(~2017)/오라클

22. 오라클 - Export & Import

단세포소년 2011. 4. 11. 11:09
반응형

. Export, Import Utility는 이기종 플래폼에서 운영되는 Database 간의 데이터를 쉽게 이동 시킬수 있는 간단한 방법을 제공
. Export Utility는 Object Definition, table Data 등 추출하여 Binary 형태의 Dump 파일을 생성
. Import Utitity 는 Export 에 의해 생성된 Dump 파일을 Database로 Import 시킨다. Export 에 의해 생성된 파일 이외의 다른 파일은 사용할수 없다.
. Export, Import Utitity는 Database Backup/Recovery에 사용되어 될 수 있다.


- 언제 Export , Import 를 사용하는가?
. 테이블 재 구성 - Row Migration 이 많이 발생한 경우, 빈 Block, Fragmentation이 많을 경우 경합을 최소화 같은 경우 사용
. 사용자간 데이터 이동
. 데이터 베이스간 데이터 이동
. 다른 플래폼 또는 다른 버젼으로 데이터 이동 - upgrade 등 ....
. Logical BackUp시

- Export , Import 사용
. Exprot , Import를 사용하기 생성해야 하는 view가 있는데 catexp.sql을 실행하면 된다. 일반적으로 Database를 생성할때 catalog.sql이 실행 catexp.sql은 catalog.sql에 포함됨 (/oracle/홈/RDBMS/ADMIN 에 존재)
. Export, Import는 command interactive, graphic
. 공통적으로 사용되는 Parameter는 Paramete 파일에 지정
  - > parameter 파일은 name=values의 형태를 가진다.




■ Export Paramger
- userid : EXPORT를 실행시키고 있는 username/password명.
- buffer : 데이터 행들을 가져오는데 사용되는 버퍼의 크기.
- file : 생성되는 EXPORT덤프 파일명.
- filesize : EXPORT덤프 파일의 최대 크기
- grants : 데이터베이스 객체에 대한 권한 정보의 EXPORT여부 (Y/N 플래그)
- indexes : 테이블에 대한 INDEXES의 EXPORT여부 (Y/N 플래그)
- rows : 행들에 대한 EXPORT여부. (Y/N 플래그)
만약 “no”이면 데이터는 EXPORT되지않고 테이블의 정의만 EXPORT 됩니다.
- constraints : 테이블에 대한 제약조건 정보의 EXPORT여부 (Y/N 플래그)
- compress : IMPORT에 대비하여 테이블의 데이터를 한 extent로 압축 할것인가의 여부
(Y/N 플래그)
- full : 전체 데이터베이스를 EXPORT할것인가의 여부 (Full Level Export) (Y/N 플래그)
- owner : EXPORT될 데이터베이스의 소유자명 (User Level Export)[owner=user]
- tables : export될 테이블의 리스트(Table Level Export) [tables=(table1, table2, ...)]


- Table Level Export 
. 명시된 테이블만 엑스포트 됩니다. 
. 테이블의 구조, 인덱스, 권한등이 테이블과 함께 엑스포트 됩니다.

- User Level Export
. 사용자 객체들이 엑스포트 되고 객체들 안에 있는 데이터도 엑스포트 됩니다.
. 사용자 객체에 대한 모든 권한들과 인덱스들도 엑스포트 됩니다.
. 다른 사용자들의 객체와 권한, 인덱스들은 엑스포트 되지 않습니다.

- Full Level Export 
. 전체 데이터베이스가 엑스포트 됩니다. 
. 모든 테이블스페이스, 모든 사용자, 또한 모든 객체, 데이터들이 포함됩니다





- Table Mode (지정 테이블만 Export)
. parameter 파일 내용 (EXP1.PAR 만들어서 밑의 내용을 써라.)
FILE = expdat.dmp
TABLES = (scott.emp, scott.dept)
GRANTS = Y
INDEXES = Y

. 실행 
 - > exp system/manager parfile=exp1.par  (프롬프트 창에서 실행, 파라미터 파일을 미리 만들고 exp 명령 사용시)
 - > exp system/manager tables=(scott.emp,scott.dept) grants=y indexes=y (파라미터 파일 미사용시에는 옵션을 일일이 지정해야함)



- USER Mode (특정 사용자의 모든 테이블 백업)
. parameter 파일 내용 (EXP2.PAR 만들어서 밑의 내용을 써라.)
FILE=scott_all.dmp
OWNER=scott
GRANTS=Y
ROWS=Y
COMPRESS=Y

. 실행
 - > exp scott/tiger parfile=exp2.par



- FULL Mode (DBA 사용자가 모든걸 백업)
. parameter 파일 내용(EXP3.PAR 만들어서 밑의 내용을 써라.)
FILE=dba.dmp
GRANT=Y
FULL=Y
ROWS=Y

.실행
 - >exp system/manager parfile=exp3.par





 Import Parameter

- userid : IMPORT를 실생시키는 계정의 username/password명
- buffer : 데이터를 행들을 가져오는데 사용되는 buffer의 bytes수
- file : IMPORT될 EXPORT 덤프 파일명
- show : 파일 내용이 화면에 표시되어야 할 것인가를 나타냄(Y/N 플래그)
- ignore : IMPORT중 CREATE명령을 실행할 때 만나게 되는 에러들을 무시할 것인지 결정
(Y/N 플래그)
- indexes : 테이블 INDEX의 IMPORT여부(Y/N 플래그)
- rows : 테이블 데이터를 IMPORT할 것인가(Y/N 플래그)
만약 "N"로 설정하면 데이터베이스 객체들에 대한 DDL만이 실행됩니다.
- full : FULL엑스포트 덤프 파일이 IMPORT 할때 사용합니다.
- tables : IMPORT될 테이블 리스트
- commit : 배열(배열의 크기는 BUFFER에 의해 설정됩니다) 단위로 COMMIT을 할것인가 결정
기본적으로는 테이블 단위로 COMMIT을 합니다.
- fromuser : EXPORT덤프 파일로 부터 읽혀져야 하는 객체들을 갖고 있는 테이터베이스 계정
- touser : EXPORT덤프 안에 있는 객체들이 IMPORT될 데이터베이스 계정



- Import 예제
. parameter 파일 내용(IMP1.PAR 만들어서 밑의 내용을 써라.)
FILE=EXPDAT.DMP
SHOW=N
IGNORE=N
GRANT=Y
FROMUSER=SCOTT

. 실행
 - > imp system/manager parfile=imp1.par (파라미터 파일 있을시 파라미터 파일 지정)
 - > imp system/manager file=expdat.dmp fromuser=scott tables(dept.emp)


- 다른 계정으로 IMPORT하기
==> scott유저의 데이터를 EXPORT받아서 test 유저에게 IMPORT하는 예제 입니다.
C:\>exp userid=system/manager file=’C:\scott.dmp’ owner=scott
C:\>imp userid=system/manager file=’C:\scott.dmp’ fromuser=scott touser=test



- 전체 데이터베이스가 IMPORT됩니다. (Full Level)
C:\>imp userid=system/manager file=’C:\full.dmp’ full=y


- scott의 유저 IMPORT를 실행 합니다.(User Level)
C:\>
imp userid=scott/tiger file=’C:\scott.dmp’


반응형