Oracle 10g의 new feature인 Data Pump는 Oracle Database data와 metadata의 이동을 위한 매우 빠른 infrastructure를 사용하고 있다. 따라서 Oracle 9i까지 사용되던 export, import utility의 더욱더 향상된 performance를 목적으로 만들어진 utility이다. 기존의 export, import또한 지원하는 Oracle 10g의 신기능인 Data Pump의 특징을 지금부터 살펴보겠다.

General Architecture

여기서는 간략하게 Data Pump가 어떤 방식으로 동작하는지 살펴보겠다.

  • Direct Path API(DPAPI) : Oracle Database 10g는 기존의 column array interface뿐만 아니라 stream interface를 지원하기 때문에, unload및 load time 시 data conversion 및 parsing을 최소화한다.
  • External Table Service: Data Pump는 다음의 driver를 사용하여 external table을 사용한다.
    • ORACLE_LOADER access driver : 이 driver는 Oracle 9i에서 나온 것으로 SQL Loader compatible files이 external table read-only access를 위해 제공된다.
    • ORACLE_DATAPUMP access driver : 이 driver는 binary DPAPI streams의 external table write & read access를 위해 제공되는 새로운 access driver이다.
  • DBMS_METADATA package는 export worker process를 위해 object definitions을 제공한다.
  • DBMS_DATAPUMP package는 Oracle Database의 data와 metadata 이동을 위해 high-speed export & import API를 제공한다.
  • 기존 버전의 SQL*Loader client는 external table로 통합되어, 자동적으로 loader control file이 external table access parameter로 migration된다.
  • 새로운 export & import client(expdp & impdp)는 Data Pump operation의 시작과 monitor를 위해 DBMS_DATAPUMP package를 부르는 역할을 한다.
  • Enterprise Manager, replication, transportable tablespaces같은 application을 위해 사용되는 client이다.

Data Pump의 주요 특징

Data pump의 주요 특징은 다음과 같다.

  • Data access methods 선택 : direct-path or external tables 이러한 선택은 data pump가 자동으로 선택하여 준다.
  • 현재 진행되는 data pump job에 영향을 주지 않은 채로 job에 attach , reattch, or detach할 수 있다.
  • Version parameter를 통해 Oracle 9i의 exp/imp와 호환된다.
  • Parallel option으로 여러 개의 thread를 띄워 좀 더 효율적인 일처리를 할 수 있다.
  • Estimate_only parameter를 통해 실제 수행하지 않고도, 어느 정도의 space를 요구하는지 측정할 수 있다.
  • Remote export 시에도 direct한 방법으로 수행할 수 있다.

Data Pump의 사용 시 장점

Data Pump를 사용하면 다음과 같은 잇점이 있다.

  • Direct-path나 external table과 같이 data-access method가 자동적으로 선택된다.
  • 오랜 시간 동안 실행되는 job에 영향을 주지 않고 그 job에 attach시켜 다른 job을 실행시키거나, detach시킬 수 있다.
  • EXCLUDE, INCLUDE, 그리고 CONTENT parameter를 사용하여 fine-grained object selection을 할 수 있다.
  • Oracle 9i부터 제공해 오던 export & import와의 호환을 위해 VERSION parameter를 사용할 수 있다.
  • PARALLEL parameter를 사용하여 process 수를 제어할 수 있다.
  • ESTIMATE_ONLY parameter를 사용하여, 실행시키지 않고 시간을 예상할 수 있다.
  • Database link를 사용하여 remote database에서 direct로 dump file을 생성 할 수 있다.

 

Data Pump Export Parameter

기존의 original export parameter와 10g의 새로운 parameter를 표를 통해 비교해보자.

Original Export 

Data Pump Export

FEEDBACK 

STATUS 

FILE 

DUMPFILE 

FILESIZE 

FILESIZE 

FLASHBACK_SCN 

FLASHBACK_SCN 

FLASHBACK_TIME 

FLASHBACK_TIME 

FULL 

FULL 

GRANTS 

EXCLUDE and INCLUDE 

HELP 

HELP 

INDEXES 

EXCLUDE and INCLUDE 

LOG 

LOGFILE 

OBJECT_CONSISTENT 

FLASHBACK_* 

OWNER

SCHEMAS 

PARFILE 

PARFILE 

QUERY 

QUERY 

RECORDLENGTH 

None 

RESUMABLE 

None 

RESUMABLE_NAME 

None 

RESUMABLE_TIMEOUT 

None 

ROWS=N 

CONTENT=METADATA_ONLY 

ROWS=Y 

CONTENT=ALL 

TABLES 

TABLES 

TABLESPACES 

TABLESPACES 

TRANSPORT_TABLESPACES 

TRANSPORT_TABLESPACES 

TRIGGERS

EXCLUDE and INCLUDE 

TTS_FULL_CHECK 

TRANSPORT_FULL_CHECK 

USERID 

None 

VOLSIZE 

None 

COMPRESS 

None 

COMMIT 

None 

BUFFER 

None 

CONSISTENT 

FLASHBACK_SCN and

FLASHBACK_TIME 

CONSTRAINTS 

EXCLUDE and INCLUDE 

DIRECT  

None 

그러면, 새로운 parameter가 어떤 기능을 하는지 살펴보자.

  • ATTACH 현재 존재하는 exporting job에 attach하여 연속적인 일을 처리할 수 있게 해준다.
  • CONTENT 어떤 자료들을 unload할 지 결정할 수 있는 parameter로 DATA_ONLY일 경우 table row data만을 unload하며, METADATA_ONLY일 경우 table row data는 unload하지 않고 database object definition만을 unload한다.
  • DIRECTORY 해당 directory에 unload를 진행한다.
  • ESTIMATE 실제 unload를 하기 전 경우 얼만큼의 space가 사용될지 측정하면서 수행할 수 있다.parameter로 측정 방법은 BLOCKS, SAMPLING, STATS, NONE으로 할 수 있다.
  • ESTIMATE_ONLY unload를 하지 않고 ESTIMATE만을 할 수 있는 parameter다.
  • EXCLUDE 이 parameter로 선택된 부분을 제외하고 unload가 가능하다.
  • INCLUDE 이 parameter로 선택된 부분을 포함하여 unload가 가능하다.
  • JOB_NAME 30자까지 job name을 지정할 수 있다.
  • KEEP_MASTER export가 수행되는 동안 master table을 유지 관리한다. Job이 끝나는 시점에 import를 위해 dump file에 이 내용을 넣고, database에서는 이 table을 drop한다. KEEP_MASTER=Y로 놓으면 이 테이블을 drop하지 않고 debugging이나 custom report를 생성할 때 유용하게 사용할 수 있다.
  • NOLOGFILE default로 생성되는 log file을 override한다.
  • PARALLEL thread의 maximum number를 지정해 주는 parameter이다.
  • VERSION 이전 버전의 database를 위한 compatibility를 제공해 주는 parameter이다.
  • NETWORK_LINK database link를 통해 network mode로 작업을 진행할 수 있다.

또한 interactive mode에서 다음과 같은 parameter들이 추가 되었다.

  • ADD_FILE 다른 퍄일을 더할수 있다.
  • CONTINUE_CLIENT interactive-command mode에서 logging mode로 바꿀수 있다.
  • EXIT_CLIENT export client session을 중지 시킨다. 그러나 현재 돌아가고 있는 job은 계속 수행된다.
  • KILL_JOB 모든 attached된 job을 detach시키고 현재 돌아가고 있는 job을 중지 시킨다.
  • PARALLEL thread를 증가시키거나 줄일수 있다.
  • START_JOB attach되어 있는 current job을 시작할 수 있다.
  • STOP_JOB 현재의 job을 중지 시킬 수 있다. 이렇게 중지된 job은 restart시킬 수 있다.
  • STATUS detailed status를 볼 수 있다.

 

Data Pump Import Parameter

 

Original Import 

Data Pump Import 

BUFFER 

None 

CHARSET

None 

COMMIT 

None 

COMPILE 

None 

CONSTRAINTS 

EXCLUDE and INCLUDE 

DATAFILES 

TRANSPORT_DATAFILES 

DESTROY 

REUSE_DATAFILES 

FEEDBACK 

STATUS 

FILE 

DUMPFILE 

FILESIZE 

None 

FROMUSER 

SCHEMAS and

REMAP_SCHEMAS 

FULL 

FULL 

GRANTS 

EXCLUDE and INCLUDE 

HELP 

HELP

IGNORE 

TABLE_EXISTS_ACTION 

INDEXFILE 

SQLFILE 

LOG 

LOGFILE 

PARFILE 

PARFILE 

QUERY 

QUERY 

RECORDLENGTH 

None 

RESUMABLE 

None 

RESUMABLE_NAME 

None 

RESUMABLE_TIMEOUT 

None 

ROWS=N 

CONTENT=METADATA_ONLY 

ROWS=Y 

CONTENT=ALL 

SHOW 

SQLFILE 

SKIP_UNUSABLE_INDEXES

SKIP_UNUSABLE_INDEXES 

STATISTICS 

None 

TABLES 

TABLES 

TABLESPACES 

TABLESPACES 

TOID_NOVALIDATE 

None 

TOUSER 

REMAP_SCHEMA 

TRANSPORT_TABLESPACES 

TRANSPORT_TABLESPACES 

TTS_OWNERS 

None 

USERID 

None 

VOLSIZE 

None 

새로운 parameter의 기능에 대해 살펴보자.

  • FLASHBACK_SCN flashback utility가 다음의 SCN으로 적용할 수 있도록 하는 parameter이다.
  • FLASHBACK_TIME FLASHBACK_SCN을 사용하지 않고 TIME으로 할 수 있는 parameter이다.
  • REMAP_DATAFILE import시 datafile을 변경하여 적용할 수 있다. 이 parameter를 사용하기 위해서는 IMP_FULL_DATABASE 권한이 있어야 한다.
  • REMAP_SCHEMA 해당 user로 import시킬 수 있는 parameter이다.
  • REMAP_TABLESPACE tablespace를 해당 parameter로 설정해 줄 수 있다.
  • REUSE_DATAFILES datafile이 있을 시에 Y로 지정해 주면 같은 이름으로 datafile을 재 생성해 준다. 여기서 주의할 점은 기존의 data는 다 없어진다는 점이다.
  • SQLFILE 해당 file에 import시 수행되는 DDL SQL문이 저장된다.
  • TABLE_EXISTS_ACTION 해당 table이 존재할 경우 어떤 처리절차를 거칠지 정해주는 parameter로, SKIP은 다음 object로 넘어가며, APPEND는 해당 table에 insert를 해주며, TRUNCATE는 해당 table을 truncate시킨 다음 load시켜주며, REPLACE는 해당 table을 drop and create시키고 load하는 기능이다.

 

EXPDP TEST

테스트 개요

기본적인 EXPDP test를 수행하여 expdp의 기능을 살펴보자.

Text mode로 직접 명령을 수행하는 방법과 Enterprise Manager로 실행하는 두 가지 방법을 차례로 보여줄 예정이다.

테스트 환경

테스트에 사용된 database version 정보는 다음과 같다. 이전 버전의 제품으로 한 테스트도 포함되어 있다.

select * from v$version;

 

BANNER

Oracle10i Enterprise Edition Release 10.1.0.1.0 - Beta

PL/SQL Release 10.1.0.1.0 - Beta

CORE 10.1.0.1.0 Beta

TNS for Solaris: Version 10.1.0.1.0 - Beta

NLSRTL Version 10.1.0.1.0 - Beta

 

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bi

PL/SQL Release 10.1.0.2.0 - Production

CORE 10.1.0.2.0 Production

TNS for Solaris: Version 10.1.0.2.0 - Production

NLSRTL Version 10.1.0.2.0 - Production

 

Data pump를 사용하기 위해 external file system의 경로를 다음과 같이 설정하였다.

SQL> create directory data_pump_dir as 'C:\Download';

 

디렉토리가 생성되었습니다.

 

테스트1-1 Text mode를 통한 expdp 테스트

SCOTT유저의 테이블 전체를 unload하는 schema level expdp를 실행해 보겠다.

C:\Download>expdp system/manager schemas=scott directory=data_pump_dir DUMPFILE=exp1.dmp,exp2%U.dmp

 

Export: Release 10.1.0.1.0 - Beta on 금요일, 05 12, 2003 11:20

 

Copyright (c) 2003, Oracle. All rights reserved.

 

Connected to: Oracle10i Enterprise Edition Release 10.1.0.1.0 - Beta

With the Partitioning, OLAP and Data Mining options

FLASHBACK 데이터베이스 무결성을 위해 자동으로 활성화됩니다.

"SYSTEM"."SYS_EXPORT_SCHEMA_01" 시작 : system/******** schemas=scott directory

=data_pump_dir DUMPFILE=exp1.dmp,exp2%U.dmp

BLOCKS 메소드를 사용하여 예측 진행 ...

객체 유형 SCHEMA_EXPORT/TABLE/TABLE_DATA 처리

BLOCKS 메소드를 사용한 예측: 160.3 MB

객체 유형 SCHEMA_EXPORT/USER 처리

객체 유형 SCHEMA_EXPORT/SYSTEM_GRANT 처리

객체 유형 SCHEMA_EXPORT/ROLE_GRANT 처리

객체 유형 SCHEMA_EXPORT/DEFAULT_ROLE 처리

객체 유형 SCHEMA_EXPORT/SE_PRE_SCHEMA_PROCOBJACT/PROCACT_SCHEMA 처리

객체 유형 SCHEMA_EXPORT/TABLE/TABLE 처리

객체 유형 SCHEMA_EXPORT/TABLE/INDEX/INDEX 처리

객체 유형 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 처리

객체 유형 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT 처리

객체 유형 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS 처리

객체 유형 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT 처리

. . "SCOTT"."TEST1" 133.5 MB 500000행이 엑스포트됨

. . "SCOTT"."BONUS" 0 KB 0행이 엑스포트됨

. . "SCOTT"."DEPT" 3.656 KB 4행이 엑스포트됨

. . "SCOTT"."EMP" 5.820 KB 14행이 엑스포트됨

. . "SCOTT"."SALGRADE" 3.585 KB 5행이 엑스포트됨

. . "SCOTT"."TEST" 0 KB 0행이 엑스포트됨

마스터 테이블 "SYSTEM"."SYS_EXPORT_SCHEMA_01"() 성공적으로 로드됨/로드 취소

******************************************************************************

SYSTEM.SYS_EXPORT_SCHEMA_01 대해 설정된 덤프 파일:

C:\DOWNLOAD\EXP1.DMP

C:\DOWNLOAD\EXP201.DMP

"SYSTEM"."SYS_EXPORT_SCHEMA_01" 작업이 11:22에서 성공적으로 완료됨

 

 

테스트1-2 Enterprise Manager를 통한 expdp 테스트

<그림 1> 위의 그림과 같이 system 유저로 접속한다.

<그림 2> system 유저로 접속한 다음 해당 schema의 종속성을 검사하기 위해 administrator로 간다.

<그림 3> Administrator에서 schema의 table을 클릭한다.

<그림 4> 이후 TEST1 table을 선택하여 종속성 표시를 선택한다.

<그림 5> scott유저의 test1 table의 종속성이 위와 같이 나온다.

<그림 6> 그림5에서와 같이 종속성을 살펴본 다음, 그림2에서 maintenance로 들어간 후 export를 클릭한다.

<그림 7> database user가 아닌 OS user로 접속하여 인증을 받는다.

<그림 8> 원하는 schema를 추가하기 위해 추가 버튼을 클릭한다.

<그림 9> 그림과 같이 scott user를 선택한 다음 선택 버튼을 클릭한다.

<그림 10> 그림 8에서 scott이 추가된 화면을 볼 수 있다. 다음을 클릭하자.

<그림 11> 블록으로 디스크 공간 예측을 하자. 다음을 클릭하자.

<그림 12> 기존에 만들어 놓은 data_pump_dir이 선택되어 있음을 확인할 수 있다. 다음을 클릭하자.

<그림 13> 작업 이름을 써놓고 즉시 시작하게 만들어 놓은 다음, 다음을 클릭한다.

<그림 14> 최종으로 작업을 검토한 후, 작업 제출을 클릭한다.

<그림 15> 그림과 같이 작업 제출이 성공함을 확인할 수 있다. 작업 보기를 클릭해보자.

<그림 16> 작업이 진행중임을 확인 할 수 있다. 데이터 펌프 작업 모니터를 클릭해 보자.

<그림 17> 완료율과 같은 작업 모니터링을 할 수 있다. 확인을 클릭하여 전 페이지로 돌아가 보자.

<그림 18> 작업이 완료됨을 확인할 수 있다. 그림 13에서 만든 작업 이름을 따라 로그를 확인해 보자.

<그림 19> expdp가 만들어 낸 로그를 확인 할 수 있다.

테스트1-3 Interactive mode Expdp Test

한 쪽에서는 expdp를 실행하면서 다른 한쪽에서는 해당 job을 monitoring하며, 그 job을 멈추고 다시 시작하는 test를 해보겠다.

우선 처음 test와 같은 명령을 한 쪽 창에서 수행시키며, 아래와 같이 실행된 시점에 다른 창을 띄워서 실행 시키본다.

<창-1>

oracle@krrac1=RASM1:/oracle/download>

$ expdp system/oracle schemas=scott directory=data_pump_dir DUMPFILE=exp1.dmp

 

Export: Release 10.1.0.2.0 - 64bit Production on Thursday, 04 March, 2004 14:10

 

Copyright (c) 2003, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

FLASHBACK automatically enabled to preserve database integrity.

Starting "SYSTEM"."SYS_EXPORT_SCHEMA_02": system/******** schemas=scott directory=data_pump_dir DU

Estimate in progress using BLOCKS method...

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 128.3 MB

Processing object type SCHEMA_EXPORT/USER

 

위에서와 같이 job_name을 attach에 붙여서 expdp를 실행할 경우, 해당 job의 status를 보여주면서 interactive command mode로 들어간다. 거기서 status를 확인한 다음, 해당 job을 stop 시켜보도록 하자.

<창-2>

oracle@krrac1=RASM1:/oracle/download>

$ expdp system/oracle attach=SYS_EXPORT_SCHEMA_02

 

Export: Release 10.1.0.2.0 - 64bit Production on Thursday, 04 March, 2004 14:11

 

Copyright (c) 2003, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

 

Job: SYS_EXPORT_SCHEMA_02

Owner: SYSTEM

Operation: EXPORT

Creator Privs: FALSE

GUID: D4C8392075663C8AE034080020E5BAD9

Start Time: Thursday, 04 March, 2004 14:10

Mode: SCHEMA

Instance: RASM1

Max Parallelism: 1

EXPORT Job Parameters:

Parameter Name Parameter Value:

CLIENT_COMMAND system/******** schemas=scott directory=data_pump_dir DUMPFILE=exp1.dmp

DATA_ACCESS_METHOD AUTOMATIC

ESTIMATE BLOCKS

INCLUDE_METADATA 1

LOG_FILE_DIRECTORY DATA_PUMP_DIR

LOG_FILE_NAME export.log

TABLE_CONSISTENCY 0

USER_METADATA 1

State: EXECUTING

Bytes Processed: 0

Current Parallelism: 1

Job Error Count: 0

Dump File: /oracle/download/exp1.dmp

bytes written: 4,096

 

Worker 1 Status:

State: EXECUTING

 

Export> stop_job

Are you sure you wish to stop this job ([y]/n): yes

 

oracle@krrac1=RASM1:/oracle/download>

$

위와 같이 해당 job을 stop 시키면 실행되고 있던 <창-1>에 다음과 같은 에러 메시지가 나타난다.

<창-1>

oracle@krrac1=RASM1:/oracle/download>

$ expdp system/oracle schemas=scott directory=data_pump_dir DUMPFILE=exp1.dmp

 

Export: Release 10.1.0.2.0 - 64bit Production on Thursday, 04 March, 2004 14:10

 

Copyright (c) 2003, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

FLASHBACK automatically enabled to preserve database integrity.

Starting "SYSTEM"."SYS_EXPORT_SCHEMA_02": system/******** schemas=scott directory=data_pump_dir DU

Estimate in progress using BLOCKS method...

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 128.3 MB

Processing object type SCHEMA_EXPORT/USER

Job "SYSTEM"."SYS_EXPORT_SCHEMA_02" stopped due to fatal error at 14:11

 

oracle@krrac1=RASM1:/oracle/download>

$

그러면 <창-2>에서 다음과 같이 job이 멈추어 있는 것을 확인할 수 있으며, 그 job을 다시 실행 시킬 수 있다.

<창-2>

oracle@krrac1=RASM1:/oracle/download>

$ expdp system/oracle attach=SYS_EXPORT_SCHEMA_02

 

Export: Release 10.1.0.2.0 - 64bit Production on Thursday, 04 March, 2004 14:14

 

Copyright (c) 2003, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

 

Job: SYS_EXPORT_SCHEMA_02

Owner: SYSTEM

Operation: EXPORT

Creator Privs: FALSE

GUID: D4C8392075663C8AE034080020E5BAD9

Start Time: Thursday, 04 March, 2004 14:14

Mode: SCHEMA

Instance: RASM1

Max Parallelism: 1

EXPORT Job Parameters:

Parameter Name Parameter Value:

CLIENT_COMMAND system/******** schemas=scott directory=data_pump_dir DUMPFILE=exp1.dmp

DATA_ACCESS_METHOD AUTOMATIC

ESTIMATE BLOCKS

INCLUDE_METADATA 1

LOG_FILE_DIRECTORY DATA_PUMP_DIR

LOG_FILE_NAME export.log

TABLE_CONSISTENCY 0

USER_METADATA 1

State: IDLING

Bytes Processed: 0

Current Parallelism: 1

Job Error Count: 0

Dump File: /oracle/download/exp1.dmp

bytes written: 4,096

 

Worker 1 Status:

State: UNDEFINED

 

Export> start_job

 

Export> continue_client

Job SYS_EXPORT_SCHEMA_02 has been reopened at Thursday, 04 March, 2004 14:14

Restarting "SYSTEM"."SYS_EXPORT_SCHEMA_02": system/******** schemas=scott directory=data_pump_dir

Processing object type SCHEMA_EXPORT/USER

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT

Processing object type SCHEMA_EXPORT/ROLE_GRANT

Processing object type SCHEMA_EXPORT/DEFAULT_ROLE

Processing object type SCHEMA_EXPORT/SE_PRE_SCHEMA_PROCOBJACT/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

. . exported "SCOTT"."EK_TEST" 108.9 MB 2752512 rows

. . exported "SCOTT"."TEST" 67.62 KB 1000 rows

. . exported "SCOTT"."DEPT" 5.656 KB 4 rows

. . exported "SCOTT"."EMP" 7.820 KB 14 rows

. . exported "SCOTT"."SALGRADE" 5.585 KB 5 rows

. . exported "SCOTT"."BONUS" 0 KB 0 rows

. . exported "SCOTT"."TST" 0 KB 0 rows

Master table "SYSTEM"."SYS_EXPORT_SCHEMA_02" successfully loaded/unloaded

******************************************************************************

Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_02 is:

/oracle/download/exp1.dmp

그러면 위와 똑 같은 테스트를 EM에서 실제로 해보겠다.

<그림 1> 위와 같이 파일로 엑스포트를 선택한다.

<그림 2> 위와 같이 스키마를 선택한다.

<그림 3> 여기서 스키마 추가 버튼을 누른다.

<그림 4> SCOTT을 선택하여 선택 버튼을 누른다.

 

 

 

<그림 5> SCOTT이 선택된 후 다음을 누른다.

<그림 6> 원하는 디렉토리를 선택하여 다음을 선택한다.

<그림 7> dump를 할 디렉토리를 선택한다.

<그림 8> 원하는 작업 이름을 적은 후 즉시 실행을 선택하여 다음을 클릭한다.

<그림 9> 최종 제출할 작업을 검토한 후 작업 제출을 클릭한다.

<그림 10> 작업 제출 중인 화면이 뜬다. 곧 작업 제출 성공 화면이 뜬다.

<그림 11> 작업 제출 성공 메시지를 보고, 작업 진행을 보기 위해 작업 보기를 클릭한다.

<그림 12> 작업이 실행 중이라는 화면을 볼 수 있습니다. 데이터 펌프 작업 모니터를 클릭한다.

<그림 13> 작업의 일시 정지를 위해 작업 상태 변경을 클릭한다.

<그림 14> 일시 중지를 선택한다. 정지를 선택할 경우 다시 실행할 수 없게 된다.

<그림 15> 작업 상태 변경 성공을 확인한 후 확인을 눌러 변경 사항을 확인한다.

<그림 16> 상태가 실패함으로 보인다. 이는 일시 정지를 나타낸다. 재시도를 클릭한다.

<그림 17> 재시도 작업을 위해 예를 클릭한다.

<그림 18> 계속 실패 된 상태로 나온다. 다음 시도를 클릭하면 변화된 것을 볼 수 있다.

<그림 19> 또한 작업 모니터링을 보아도 executing임을 확인할 수 있다.

<그림 20> 상태가 성공함 이면 실제 로그를 보아 마지막으로 성공함을 확인하자.

<그림 21> 이 내용은 실제 OS에 만들어진 log와 같은 내용이다.

 

IMPDP TEST

Test 방식은 expdp와 같은 방식으로 한다

테스트2-1 Text Mode를 통한 impdp 테스트

expdp로 받은 dump file을 통해 impdp를 실행해 본다. Impdp를 실행하기 전에 scott user의 객체들을 깨끗이 정리한 후 impdp를 실행한다. 실행은 다음과 같은 내용을 보여준다.

C:\Download> impdp system/manager directory=data_pump_dir dumpfile=expdat01.dmp logfile=data_pump_dir:imp.log

 

Import: Release 10.1.0.1.0 - Beta on 금요일, 05 12, 2003 18:10

 

Copyright (c) 2003, Oracle. All rights reserved.

 

Connected to: Oracle10i Enterprise Edition Release 10.1.0.1.0 - Beta

With the Partitioning, OLAP and Data Mining options

마스터 테이블 "SYSTEM"."SYS_IMPORT_FULL_01"() 성공적으로 로드됨/로드 취소됨

"SYSTEM"."SYS_IMPORT_FULL_01" 시작 : system/******** directory=data_pump_dir d

umpfile=expdat01.dmp logfile=data_pump_dir:imp.log

객체 유형 SCHEMA_EXPORT/USER 처리

ORA-31684: 객체 유형 USER:"SCOTT": () 존재합니다.

객체 유형 SCHEMA_EXPORT/SYSTEM_GRANT 처리

객체 유형 SCHEMA_EXPORT/ROLE_GRANT 처리

객체 유형 SCHEMA_EXPORT/DEFAULT_ROLE 처리

객체 유형 SCHEMA_EXPORT/SE_PRE_SCHEMA_PROCOBJACT/PROCACT_SCHEMA 처리

객체 유형 SCHEMA_EXPORT/TABLE/TABLE 처리

객체 유형 SCHEMA_EXPORT/TABLE/TABLE_DATA 처리

. . "SCOTT"."TEST1" 133.5 MB 500000행이 임포트됨

. . "SCOTT"."BONUS" 0 KB 0행이 임포트됨

. . "SCOTT"."DEPT" 3.656 KB 4행이 임포트됨

. . "SCOTT"."EMP" 5.820 KB 14행이 임포트됨

. . "SCOTT"."SALGRADE" 3.585 KB 5행이 임포트됨

. . "SCOTT"."TEST" 0 KB 0행이 임포트됨

객체 유형 SCHEMA_EXPORT/TABLE/INDEX/INDEX 처리

객체 유형 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 처리

객체 유형 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT 처리

객체 유형 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS 처리

객체 유형 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT 처리

"SYSTEM"."SYS_IMPORT_FULL_01" 작업이 1 오류와 함께 18:11에서 완료됨

 

 

테스트2-2 Enterprise Manager를 통한 impdp 테스트

 

<그림 20> expdp와 같은 경로를 거쳐 maintenance 화면으로 온다. Import를 클릭해 보자.

<그림 21> OS user를 써 넣은 다음, 스키마를 클릭해보자

<그림 22> impdp를 실행할 scott user와 users tablespace를 선택한다.

<그림 23> 그림과 같이 선택하였다면, 다음을 클릭해 보자.

<그림 24> 로그 파일 생성을 선택한 후 다음을 클릭해 보자.

<그림 25> 작업 매개변수를 써넣은 다음 작업을 즉시 시작으로 선택하여, 다음을 클릭해 보자.

<그림 26> 마지막으로 작업을 검토한 후 작업 제출을 클릭해 보자.

<그림 27> 작업이 성공적으로 제출됨을 확인한 후, 작업 보기를 클릭해 보자.

<그림 28> 현재 작업이 실행되고 있음을 확인할 수 있다. 로그를 살펴보자.

<그림 29> 다음과 같이 수행되고 있음을 확인할 수 있다. 추가 정보 표시를 클릭해보자.

<그림 30> 최종 로그가 다음과 같음을 확인할 수 있다.

활용가이드 및 결론

기존의 exp & imp에 비해 더욱 향상된 성능과 불필요한 parameter는 사라지고, 기존의 exp & imp와의 호환을 위한 parameter가 있어서 Oracle 10g의 data pump를 사용하는 데 전혀 문제가 없다. 따라서 기존의 exp & imp를 써서 처리해야 했던 모든 업무를 data pump를 사용하면 매우 효과적은 업무 처리가 될 수 있을 것이다.

 

 

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

+ Recent posts