728x90
출처: Oracle 데이터 이동 Datapump(expdp, impdp) 사용하기(1) (tistory.com)
Datapump
오라클 9i에서는 Export(exp)와 Import(imp) 유틸리티를 사용해서 데이터 이동을 했었는데, 10g부터는 Datapump를 사용해서 기존 유틸리티보다 빠르게 작업을 할 수 있다. 하지만 적은 양의 데이터를 이동시킬때는 Export와 Import 유틸리티가 더 빠르다.
그리고 Datapump는 오라클 서버단에서 제어 되는 툴로, Directory 객체를 생성하여 사용하고 export/import 작업을 진행하는 유저에게 해당 객체에 대해 읽기, 쓰기 권한을 부여해야 한다.
- 데이터를 이동할 때 사용하는 유틸리티이다.
- 운용/개발 서버 또는 운용/복구 서버를 따로 두어 개발하고, 복구 완료 후 운용 서버로 데이터를 옮긴다.
- DB가 Open 되어 있을 때만 사용 가능하다.
- 다른 기종의 플랫폼 또는 다른 버전의 오라클 간에도 이동 가능하다.
- 작업시 Temporary Tablespace를 사용하므로 용량이 큰 작업의 경우엔 Temporary Tablespace 크기를 크게 하여 미리 준비한다.
- EXPORT는 SELECT - 데이터 딕셔너리를 select 해야 데이터를 가져올 수 있기 때문
- IMPORT는 DML, DDL - target DB에 dump file 이동(create table, insert value 등)
- (9i) export/import 유틸리티 제공 : $exp, $imp
- (10g) data pump 유틸리티 제공 : $expdp, $impdp
Datapump 실습
OS 환경 : Oracle Linux 6.3
DB 환경 : Oracle Database 12.1.0.2
SID : PROD, testdb 간의 데이터이동
1. 이동할 데이터의 파일 디렉토리 생성
[testdb@host01 ~]$ mkdir -p /home/oracle/prod/datapump
2. 디렉토리 객체 생성
PROD> sqlplus / as sysdba
PROD> startup
PROD> create directory prod_dir as '/home/oracle/prod/datapump';
디렉토리 객체가 잘 생성되었는지 확인한다.
select directory_name, directory_path
from dba_directories
where directory_name='PROD_DIR';
3. 권한 부여
PROD> grant read, write on directory prod_dir to sh, hr, scott;
*권한 부여하기 전 유저 계정 lock 해제
PROD> alter user &a identified by &b account unlock;
4. export 작업
[PROD@host01 ~]$ expdp scott/tiger dumpfile=scott.dmp directory=prod_dir tables=emp,dept
dumpfile이 잘 생성 되었는지 확인한다.
[PROD@host01 ~]$ ls /home/oracle/prod/datapump
생성된 dumpfile 확인해보면 읽기 어려운 형태로 되어 있다.
[PROD@host01 ~]$ vi /home/oracle/prod/datapump/scott.dmp
5. import 작업
[testdb@host01 ~]$ impdp system/oracle_4U dumpfile=scott.dmp directory=prod_dir
shared memory가 부족하다는 오류가 발생했다.
SGA 메모리 크기를 확인해본다.
SGA 메모리 크기를 늘려준다.
[testdb@host01 ~]$ impdp system/oracle_4U dumpfile=scott.dmp directory=prod_dir
다시 import를 수행하니까 성공적으로 완료되었다.
728x90
반응형
'정보관리(데이터베이스, DB) > 오라클' 카테고리의 다른 글
[Oracle] 계정 및 테이블스페이스 생성 (0) | 2023.11.29 |
---|---|
오라클 sysdba export (0) | 2023.11.29 |
[Oracle] 리스너(Listener) 란? (0) | 2023.11.29 |
ORACLE XE에서 8080 PORT 포트번호 변경방법, 톰캣 충돌 시 해결방법 (1) | 2023.11.29 |
오라클 character set 확인 및 변경 (0) | 2023.11.29 |