oracle

[ORACLE] IMPDP 명령어 모음

둥구리둥둥 2023. 1. 19. 10:39
728x90

● datapump 사용 사전 설정

  1. 디렉토리 오브젝트 생성
SQL>create directory 'EXPDUMP'  as '/dump';

  2. 권한 부여
SQL> grant read, write on directory 'EXPDUMP' to 'scott';
SQL> grant exp_full_database, imp_full_database  to 'scott';

  3. 데이터 펌프 수행
$ impdp scott/tiger DIRECTORY=EXPDUMP LOGFILE=test_dump.log FULL=y
 


● Data Pump Option

 
-  USER/PW : 데이터베이스 유저 및 비밀번호

- DIRECTORY : DATAPUMP FILE을 저장하는 디렉토리

- DUMPFILE : DATAPUMP에 의해 생성 될 DUMPFILE 이름

- LOGFILE : DATAPUMP에 의해 생성 될  LOGFILE 이름

- FULL : DATABASE 전체를 EXPORT 여부 결정  YES/NO (default : NO)

- SCHEMAS - SCHEMA가 소유한 objects 를 EXPORT 

- TABLES - 명시 된 TABLE 에 대해서만 EXPORT

- TABLESPACES - 명시된 TABLESPACE에 저장된 OBJECT 에 대해 EXPORT

- PARALLEL : 데이터 펌프 작업시 병렬 프로세스의 개수를 지정하는 옵션
EX>
<dumpfile>
/export/test_dump01.dmp
/export/test_dump02.dmp
/export/test_dump03.dmp
/export/test_dump04.dmp
$ impdp scott/tiger DIRECTORY=EXPDUMP LOGFILE=test_dump.log FULL=y PARALLEL=4 DUMPFILE=test_dump%U.dmp  


- EXCLUDE : IMPDP 작업에서 제외 될 object or  schema 이름을 명시하는 옵션
EX>
$ impdp scott/tiger DIRECTORY=EXPDUMP DUMPFILE=test_dump.dmp   LOGFILE=test_dump.log FULL=y parfile=test.par
(parfile 내용)
exclude=table:"IN('EMP','TEST')" 
exclude=schema:"IN('SYS', 'SYSTEM')"

- INCLUDE : impdp작업에서 포함 될 object or  schema 이름을 명시하는 옵션
EX>
$ impdp scott/tiger DIRECTORY=EXPDUMP DUMPFILE=test_dump.dmp  LOGFILE=test_dump.log  parfile=test.par
(parfile 내용)
include=table:"IN('EMP','TEST)" 
include=schema:"IN('SYS', 'SYSTEM')"

- PARFILE : 지정된 파일에 원하는 옵션을 설정한 후 EXPORT 하는 기능
EX>
$ impdp scott/tiger DIRECTORY=EXPDUMP DUMPFILE=test_dump.dmp  LOGFILE=test_dump.log  parfile=test.par
(parfile 내용)
include=table:"IN('EMP','TEST)" 
include=schema:"IN('SYS', 'SYSTEM')"

- CONTENT

1. ALL : DATA & METADATA 모두 포함하여 EXPORT/IMPORT 함
2. METADATA_ONLY : METADATA 만  포함하여 EXPORT/IMPORT 함 
3. DATA_ONLY : DATA  포함하여 EXPORT/IMPORT 함
EX>
$ impdp scott/tiger DIRECTORY=EXPDUMP DUMPFILE=test_dump.dmp  LOGFILE=test_dump.log  parfile=test.par content=metadata_only

- ESTIMATE
1. BLOCKS [default] : dumpfile 내의 테이블이 사용하는 디스크 사용량을 오브젝트 쓰인 block 수로 표현 함 (결과는 log 파일에 떨어짐)
2. STATISTICS : 사용량을 통계로 표현 (결과는 log 파일에 떨어짐)

-- MASTER_ONLY
1. NO [default]
2. YES : 마스터테이블만 가져온 후 작업 중단

(Master table : 현재 수행 중인 모든 export/import 객제의 상태정보와 dump file set에서의 위치정보를 가지고 있는 테이블로
갑작스러운 작업중단에도 master table과 dump file set 정보를 이용하여 이어서 작업을 재개할수 있게 함)

-- SKIP_UNUSABLE_INDEXES
1. YES : UNUSABLE INDEX 는 제외하고 IMPORT 
2. NO  : UNUSABLE INDEX 포함하여 IMPORT 


-- TABLE_EXISTS_ACTION = (OPTION)

1. SKIP - 동일 이름의 테이블이 존재할 경우 해당 테이블은 SKIP 
2. APPEND - 동일 이름의 테이블이 존재할 경우 데이터를 해당 테이블에 추가 적재
3. REPLACE - 동일 이름의 테이블이 존재할 경우 해당 테이블을 재생성 후 데이터 적재
4. TRUNCATE - 동일 이름의 테이블이 존재할 경우 해당 테이블의 데이터를 TRUNCATE 후 데이터 적재


EXPDP/IMPDP DICTIONRARY VIEW

1. DBA_DATAPUMP_JOBS - 수행 및 중단 중인 DATAPUMP 작업에 대한 정보 확인
2. DBA_DATAPUMP_SESSIONS - DATAPUMP 작업을 수행시키는 세션에 대한 정보 확인

 

●  EXPDP, IMPDP JOB KILL 방법

SQL>select * from dba_datapump_jobs;

OWNER_NAME JOB_NAME             OPERATION JOB_MODE STATE     DEGREE ATTACHED_SESSIONS
---------- -------------------- --------- -------- --------  ------
-----------------
SYSTEM     SYS_EXPORT_SCHEMA_01 EXPORT    SCHEMA   NOT RUNNING 1    

1. Get the job name from the output.

SYS_EXPORT_SCHEMA_03

2. Attached the job with following parameter.

$ impdp scott/tiger attach=SYS_EXPORT_FULL_01

 
3. Check the status of the job.

Export> impdp status

4. Stop or kill the job running.

Export> KILL_JOB
Are you sure you wish to stop this job ([yes]/no): yes

5. 만약에 dmp 파일이 삭제 되거나 오래된 job 삭제 방법

- JOB_NAME 확인
SQL>select * from dba_datapump_jobs;

- JOB_NAME 으로 된 테이블 확인 
SQL> select * from dba_tables where table_name='SYS_EXPORT_SCHEMA_01';

- JOB_NAME 으로된 테이블 삭제
SQL> DROP TABLE SCOTT.SYS_EXPORT_SCHEMA_01 PURGE;

- 제거 됨을 확인 

SQL>select * from dba_tables where table_name='SYS_EXPORT_SCHEMA_01';
SQL>select * from dba_datapump_jobs where job_name='SYS_EXPORT_SCHEMA_01';

728x90