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를 사용하면 매우 효과적은 업무 처리가 될 수 있을 것이다.
'DB - ORACLE > Oracle Up,Mig' 카테고리의 다른 글
[TD-ORACLE] migration using datadump.docx (0) | 2017.10.18 |
---|---|
윈도우 아카이브 삭제 스크립트 (0) | 2015.08.24 |
Oracle TTS 마이그레이션 작업 가이드 (0) | 2015.02.26 |
오라클 패치 테스트 for Windows (0) | 2015.01.19 |