'10G DATAPUMP: REMAP TABLESPACE 기능'에 해당되는 글 1건

  1. 2009.11.05 imp시 tables 틀릴경우 ,10G DATAPUMP: REMAP TABLESPACE 기능
02.Oracle/DataBase2009. 11. 5. 18:04
반응형
제품 : ORACLE SERVER

작성날짜 : 2004-05-28

10G DATAPUMP: REMAP TABLESPACE 기능
===================================


PURPOSE


이 문서는 datapump의 REMAP_TABLESPACE 파라미터를 사용하여 데이터베이스 객체를
하나의 테이블 스페이스에서 다른 테이블스페이스로 옮기는 방법을 설명하는 것을 목적으로
한다.

Explanation

Example


범위와 적용 방안


데이터베이스 관리자 - 오라클 기술 지원 애널리스트

다음은, REMAP_TABLESPACE 기능을 사용하여 데이터베이스 객체를 하나의 테이블스페이스로 부터
다른 테이블스페이스로 옮기는 예제를 보여주고 있다.

이 작업은 datapump 임포트에를 통해 수행되며, 다음 세개의 datapump 명령에 의해 소스 스키마로 부터
객체를 추출 할 수 있다.

expdp SYSTEM/password TABLES=<schemaname.tablename>
expdp SYSTEM/password SCHEMAS=<schema>
expdp SYSTEM/password FULL=y

다음은 Scott의 객체를 NewScott의 스키마로 datapump export 명령에 의해 추출하는 절차를
보여준다.

expdp SYSTEM/manager SCHEMAS=scott DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp

=====================

sun1/home/prod/scmiller> sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Tue Dec 23 14:29:18 2003

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

Enter user-name: / as sysdba

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create directory dpump_dir1 as '/home/prod/scmiller';

Directory created.

SQL> grant read, write on directory dpump_dir1 to public;

Grant succeeded.

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options

sun1/home/prod/scmiller> expdp system/manager schemas=scott
DIRECTORY=dpump_dir1 DUMPFILE=newtbs.dmp

Export: Release 10.1.0.2.0 - on Tuesday, 13 January, 2004 12:29

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

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** schemas=scott DIRECT
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
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"."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
Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
/home/prod/scmiller/newtbs.dmp
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 12:36

Scott의 객체가 어느 테이블스페잇에 존재하는지 확인 해 보자 :

Enter user-name: scott/scott

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options

SQL> select owner, tablespace_name from dba_segments where owner='SCOTT';

OWNER TABLESPACE_NAME

------------------------------
SCOTT USERS
SCOTT USERS
SCOTT USERS
SCOTT USERS
SCOTT USERS
SCOTT USERS

이제 관련 테이블들을 삭제해 보자 :

SQL> drop table SALGRADE;

Table dropped.

SQL> drop table emp;

Table dropped.

SQL> drop table dept;

Table dropped.

SQL> drop table bonus;

Table dropped.

Import는 다음 명령으로 실행 시킨다.

impdp Scott/Scott DIRECTORY=dpump_dir1 DUMPFILE=newtbs.dmp
REMAP_TABLESPACE='USERS':'NEW_USERS'

sun1/home/prod/scmiller> impdp SYSTEM/manager DIRECTORY=dpump_dir1
DUMPFILE=newtbs.dmp REMAP_TABLESPACE='USERS':'NEW_USERS'

Import: Release 10.1.0.2.0 - Production on Tuesday, 23 December, 2003 14:50

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

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Produn
With the Partitioning, OLAP and Data Mining options
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": SYSTEM/******** DIRECTORY=dpump_dir1 D
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/TABLE_DATA
. imported "NEWSCOTT"."DEPT" 5.656 KB 4 rows
. imported "NEWSCOTT"."EMP" 7.820 KB 14 rows
. imported "NEWSCOTT"."SALGRADE" 5.585 KB 5 rows
. imported "NEWSCOTT"."BONUS" 0 KB 0 rows
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
Job "SYSTEM"."SYS_IMPORT_FULL_01" successfully completed at 14:53

sun1/home/prod/scmiller> sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Tue Dec 23 14:54:13 2003

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

sun1% sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Tue Jan 13 12:53:36 2004

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

Enter user-name: / as sysdba

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options

SQL> select owner, tablespace_name from dba_segments where owner='SCOTT';

OWNER TABLESPACE_NAME


------------------------------
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS

6 rows selected.

=======================

여러개의 REMAP_TABLESPACE 파라미터를 지정할 수는 있으나, 두개 이상의 타겟 테이블스페이스에 대해
동일한 소스 테이블스페이스를 지정할 수 없다. 타겟 스키마는 타겟 테이블스페이스 내
충분한 quota를 부여 받은 상태이어야 한다.

주의해야 할 점은 REMAP_TABLESPACE 파라미터는 Data Pump Import에서만 유일하게 제공하는 테이블스페이스
remap 이법이라는 것이다. 이것은, Import 유틸리티 보다 깨끗하고 단순하게 작업을 수행할 수 있게 해
준다. Import 유틸리티에서는, 사용자의 default tablespace를 변경 시키기위해서는, export 및
사용자 drop, 사용자의 생성, 데이터 import와 같은 여러 단계의 작업을 수행 해야만 했었다. 이 방법에는
많은 제약 사항이 존제하는데 (테이블스페이스 지정과 관련 구문) 이것은 일부 DDL이 수행 실패하는
결과를 초래 하기도 한다.

그러나 Data Pump Import는 REMAP_TABLESPACE 파라미터를 제공하므로, 모든객체에 대해 DDL 구문에
어떤 테이블스페이스 지정 구문을 사용했던 상관 없이 안전하게 remap 시킬 수 있는 기능을 제공한다.

Reference Documents

Note:261085.1 Datapump: Remap Tablespace feature
Oracle Database Utilities 10g Release 1 (10.1)


출처 : http://kr.forums.oracle.com/forums/thread.jspa?messageID=1699010


Posted by 1010