【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]

zhouxianwang發表於2012-07-30

本文透過實踐演示,完整模擬一下使用EXPDP/IMPDP工具實現傳輸表空間的過程,供參考。
任務描述:將secdb1例項上的sec使用者表空間tbs_sec的資料傳輸到secdb2例項上secooler使用者下。

1.secdb1例項環境準備
1)建立待操作的表空間
> create tablespace tbs_sec datafile '/u01/app/oracle/oradata/secdb1/dfile/tbs_sec_01.dbf' size 5 m autoextend on;

Tablespace created.

2)重新建立sec使用者並授權
> drop user sec cascade;

User dropped.

> create user sec identified by sec default tablespace tbs_sec;

User created.

> grant connect,resource to sec;

Grant succeeded.

3)在sec使用者下簡單建立一張表並初始化一條記錄
> conn sec/sec
Connected.
> create table t(x int);

Table created.

> insert into t values (1);

1 row created.

> commit;

Commit complete.

> select * from t;

         X
----------
         1

2.檢tbs_sec表空間是否“自包含”
> EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('tbs_sec',true);

PL/SQL procedure successfully completed.

> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

no rows selected

OK,沒有問題。

3.將表空間調整到只讀狀態
> ALTER TABLESPACE tbs_sec read only;

Tablespace altered.

4.使用EXPDP工具完成表空間元素據匯出
> create directory dir_home as '/home/oracle';

Directory created.

> grant read,write on directory dir_home to public;

Grant succeeded.

[oracle@seclinux ~]$ expdp system/oracle1 directory=dir_home dumpfile=tbs_sec.dmp transport_tablespaces=tbs_sec transport_full_check=y

Export: Release 10.2.0.1.0 - Production on Saturday, 23 July, 2010 22:23:21

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

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/******** directory=dir_home dumpfile=tbs_sec.dmp transport_tablespaces=tbs_sec transport_full_check=y
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
  /home/oracle/tbs_sec.dmp
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 22:23:39

5.將tbs_sec表空間對應的資料檔案和tbs_sec.dmp 複製到secdb2例項對應的目錄
[oracle@seclinux ~]$ cp /u01/app/oracle/oradata/secdb1/dfile/tbs_sec_01.dbf /u01/app/oracle/oradata/secdb2/tbs_sec_01.dbf

6.在secdb2例項上使用IMPDP工具完成表空間的匯入
> create user secooler identified by secooler;

User created.

> grant connect,resource to secooler;

Grant succeeded.

> create directory dir_home as '/home/oracle';

Directory created.

> grant read,write on directory dir_home to public;

Grant succeeded.

[oracle@seclinux ~]$ impdp system/oracle1 DUMPFILE=tbs_sec.dmp DIRECTORY=dir_home TRANSPORT_DATAFILES=/u01/app/oracle/oradata/secdb2/tbs_sec_01.dbf REMAP_SCHEMA=sec:secooler

Import: Release 10.2.0.1.0 - Production on Saturday, 23 July, 2010 22:34:48

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

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** DUMPFILE=tbs_sec.dmp DIRECTORY=dir_home TRANSPORT_DATAFILES=/u01/app/oracle/oradata/secdb2/tbs_sec_01.dbf REMAP_SCHEMA=(sec:secooler)
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 22:34:52

7.在secdb2例項上驗證資料匯入效果
> conn secooler/secooler
Connected.
> select * from cat;

TABLE_NAME                     TABLE_TYPE
------------------------------ -----------
T                              TABLE

> select * from t;

         X
----------
         1

> select owner,tablespace_name from dba_tables where wner='SECOOLER' and table_name='T';

OWNER                          TABLESPACE_NAME
------------------------------ ------------------------------
SECOOLER                       TBS_SEC

OK,使命完成。

8.最後記得將secdb1例項中tbs_sec表空間置為可讀寫模式
> ALTER TABLESPACE tbs_sec read write;

Tablespace altered.

 

source:http://space.itpub.net/519536/viewspace-668938

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27036311/viewspace-738831/,如需轉載,請註明出處,否則將追究法律責任。

相關文章