2016. 1. 5. 15:43ㆍdatabase/oracle
Oracle 10g 이상부터 사용가능합니다.
기존의 exp, imp보다 향상되었다고 하네요
사용방법
원격지에서도 사용가능합니다.
1. 디렉토리 조회하기
select * from dba_directories;
2. 디렉토리 추가하기
create directory dpump_dir as '/DATA/oracle';
3. 디렉토리 삭제 (잘못 입력 했을 경우 삭제)
drop directory dpump_dir;
4. 디렉토리에 대한 권한 설정
grant read, write on directory dpump_dir to 사용자(또는 public);
5. expdp (oracle 계정 접속 후 사용 -> # su - oracle)
스키마(owner) 기준
$ expdp 사용자/비번 directory=2번에서 추가한 디렉토리 schemas=스키마명 dumpfile=파일명.dmp logfile=파일명.log
전체
$ expdp dpsp/dpsp dumpfile=파일명.dmp directory=2번에서 추가한 디렉토리 full=y logfile=파일명.log job_name=dpspfullexp
5.1 cmd 에서 사용방법
스키마(owner) 기준
expdp 사용자/비번@111.111.11.1:1521/orcl directory=2번에서 추가한 디렉토리 schemas=스키마명 dumpfile=파일명.dmp logfile=파일명.log
전체
expdp 사용자/비번@111.111.11.1:1521/orcl directory=2번에서 추가한 디렉토리 full=y dumpfile=파일명.dmp logfile=파일명.log
* expdp 실행모드
- full 모드 : 데이터베이스 전체를 export 받을수있다
- schema(owner) 모드 : schema 파라미터를 사용하여 특정 스키마 전체를 받을수있다.
- tablespace 모드 : 해당 tablespace에 속한 모든 테이블을 받을수있습니다.
transport_tablespace파라미터를 사용한다면 테이블과 테이블스페이스의 메타데이터도 받을수있습니다.
단!!! transport_tablespace를 사용하려면 양쪽 OS가 같고 blocksize와 characterset 이 같아야 합니다.
* expdp 파라미터
- directory : 디렉토리 오브젝트를 지정하여 덤프 파일의 위치로 로그파일의 위치 지정가능
- dumpfile : 파일시스템에 저장될 덤프파일의 이름을 지정해주는 파라미터로 파일이 여러개로 나누어질때 %U로 파일 이름을 고유하게 구분해 줄수 있다.
- filesize : 한개 파일의 최대 크기를 지정
- parfile : 파라미터 파일을 참조하여 사용
- logfile/nologfile : 작업내용을 저장 할 로그파일명을 지정
- content: 작업시 어떤 내용을 포함시킬 것인가를 결정
All :테이블과 메타데이터를 모함한 모든것
DATA_only:테이블 데이터만 포함
Metadata_only:메타데이터만 포함
- exclude/include : 작업시 원하는 오브젝트만 선택하여 작업
ex)scott schema 의 모든 것을 expdp 받되 emp,dept 테이블만 제외할경우
expdp scott/tiger directory=datapump dumpfile=scott01.dmp schemas=scott exclude=table:\"IN\(\'EMP\',\'DEPT\'\)\"
- query : 특정 조건에 맞는 데이터만 expdp 를 수행할 경우
- sample : 데이터를 export할때 데이터가 너무 많을 경우 특정 퍼센트를 지정해서 추출 범위는 0.000001~100%
- network_link : 원격으로 expdp할때 이기능은 DB link가 생성되어있어야 합니다
- encrytion_password : expdp받은 테이블중에 특정 컬럼이 encryption되어있는경우 작업시 암호를 설정가능
- job_name : 작업 수행시 job에 이름을 설정할수있습니다. 설정을 하지않으면 오라클이 자동으로 설정
- status : 이 파라미터는 작업시 갱신된 내용을 status 설정된 시간 간격으로 진행상태를 보여주게 됩니다.
- parallel : 작업수행시 프로세스를 몇 개를 사용 할 것인가를 지정하는 파라미터입니다. 주의할점은 지정된 개수만큼의 데이터 파일을 만들어 주어야하는데 앞에서 배운 %U 옵션을 주면 자동으로 생성
- attach : 일시 중단된 작업에 다시 접속 할때 사용
ex) expdp scott/tiger job_name=dp1
attach 모드 옵션
add_file : 덤프파일을 추가
exit:job 의 작업에서 빠져나감
kill_job : 해당 작업을 삭제
parallel : 현재 작업중인 프로세스의 개수를 조절
start_job :중단된 작업을 다시 시작
status : 현재 작업을 모니터링하는 시간조절
stop_job : 현재 작업을 중단
6.impdp
impdp 사용자/비번 dumpfile=파일명.dmp directory=dpump_dir2 schemas=스키마명 logfile=파일명.log
* impdp 관련 파라미터
* impdp 관련 파라미터는 거의 expdp와 비슷한 것이 많아서 중복설명은 생략하겟으니 expdp를 참고하세요
- content
- include
- exclude
- table_exists_action : impdp 에 만 있는 옵션으로 동일한 이름의 테이블이 존재할 때 테이블의 데이터가 다를 경우가 있습니다.
skip : 같은 테이블을 만나면 건너뛰고 다음테이블을 impdp 함
append : 같은 테이블을 만나면 기존내용에 데이터를 추가
truncate : 같은 테이블을 만나면 기존 테이블을 truncate 하고 새로 impdp 합니다
drop : 기존 테이블을 drop하고 테이블을 새로 만들어서 새로운 내용을 impdp 합니다
- remap_schema : scott user로 expdp 받은 테이블을 다른 유저로 impdp 할때 사용
ex)impdp system/oracle directory=datapump dumpfile=scott.dmp schemas=scott include=table:\"\=\'emp\'\" remap_schema=scott:hr
- remap_datafile : 기존 서버의 데이터파일 정보를 이전 후 서버의 데이터파일로 매핑해주는 파라미터
expdp 된 덤프 파일 안에 데이터 파일 정보를 가지고 있는 경우만 사용가능
ex)impdp system/oracle full=y directory=datapump dumpflie=full01.dmp remap_datafile='/data1/users01.dbf':'/data2/users01.dbf'
- remap_tablespace : 기존 테이블스페이스에서 다른 테이블스페이스로 테이블을 impdp시킬때 사용
ex) impdp system/oracle directory=datapump dumpfile=scott.dmp remap_tablespace ='users1':'users2' schemas=scott;
ex) impdp system/oracle directory=datapump dumpfile=scott.dmp remap_tablespace =users1_data:users2_data, users1_index:users2_index schemas=scott;
ex) impdp system/oracle directory=datapump dumpfile=scott.dmp schemas=scott remap_schema=scott:scotttest remap_tablespace=users1_data:users2_data include=table:"in ('EMP','DEPT','SAL')" logfile=scott_impdp.log
ex) impdp system/oracle directory=datapump dumpfile=scott.dmp schemas=scott remap_schema=scott:scotttest remap_tablespace=users1_data:users2_data include=table:\"in \(\'EMP\',\'DEPT\',\'SAL\'\)\" logfile=scott_impdp.log
ps : 테이블명 대문자~~
- network_link
'database > oracle' 카테고리의 다른 글
oracle / hint / 힌트 종류 정리 (1) | 2016.01.05 |
---|---|
oracle / SQLPLUS 원격지 접속 / cmd 원격접속 (0) | 2016.01.05 |
oracle / DB Link 만들기 (0) | 2016.01.05 |
oracle / ORA-00904 / 스칼라 서브쿼리 / with (0) | 2016.01.05 |
toad 글꼴 변경 (0) | 2016.01.05 |
oracle / 오라클 및 각종 DB 강좌 사이트 (0) | 2016.01.05 |
oracle xe 8080 prot / 포트 / 변경 (0) | 2016.01.05 |
Oracle 사용자 계정 생성 / 삭제 / 권한 (0) | 2016.01.05 |
oracle / table 명세서 / 테이블 명세서 / 테이블 정보 / 조회 쿼리 / sql (0) | 2016.01.05 |
oracle / split / 문자열 잘라서 세로로 표시 (0) | 2016.01.05 |