對比資料泵與原始匯入匯出工具(五)

yangtingkun發表於2009-01-29

Oracle的匯入匯出工具EXP/IMP由來已久,大部分人對於使用這兩個工具也都不陌生。Oracle10g開始推出的資料泵EXPDP/IMPDP,提供了匯入匯出的效能,也增加了匯入匯出的功能,但是由於使用時間不長,可能部分人對這個工具不太瞭解。一直打算寫幾篇文章,簡單描述一下EXP/IMPEXPDP/IMPDP的差異。

對比資料泵與原始匯入匯出工具(一):http://yangtingkun.itpub.net/post/468/476017

對比資料泵與原始匯入匯出工具(二):http://yangtingkun.itpub.net/post/468/476060

對比資料泵與原始匯入匯出工具(三):http://yangtingkun.itpub.net/post/468/477335

對比資料泵與原始匯入匯出工具(四):http://yangtingkun.itpub.net/post/468/477380

這篇描述資料泵的EXCLUDE引數。

 

 

上一篇文章中已經提到了,資料泵作為邏輯備份工具已經可以匯入、匯出任意的物件,比如檢視、同義詞、過程、序列等等。資料泵透過INCLUDE引數,不但可以指定任意型別的物件,還可以透過名稱或萬用字元進行匹配。

透過INCLUDE引數已經實現了EXP/IMP所能完成的功能,而且還提供了模糊匹配。而資料泵還提供了一個EXCLUDE引數,使用者可以指定不匯入匯出某種型別的物件或者不匯入匯出名稱匹配的物件。而這是EXP/IMP中一直無法實現的功能。

E:\>expdp yangtk/yangtk directory=d_output dumpfile=exc_tables.dp exclude=table

Export: Release 10.2.0.1.0 - Production on 星期四, 29 1, 2009 20:19:44

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "YANGTK"."SYS_EXPORT_SCHEMA_02":  yangtk/******** directory=d_output dumpfi
le=exc_tables.dp exclude=table
正在使用 BLOCKS 方法進行估計...
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 0 KB
處理物件型別 SCHEMA_EXPORT/USER
處理物件型別 SCHEMA_EXPORT/SYSTEM_GRANT
處理物件型別 SCHEMA_EXPORT/ROLE_GRANT
處理物件型別 SCHEMA_EXPORT/DEFAULT_ROLE
處理物件型別 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
處理物件型別 SCHEMA_EXPORT/TYPE/TYPE_SPEC
處理物件型別 SCHEMA_EXPORT/DB_LINK
處理物件型別 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
處理物件型別 SCHEMA_EXPORT/CLUSTER/CLUSTER
處理物件型別 SCHEMA_EXPORT/CLUSTER/INDEX
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
處理物件型別 SCHEMA_EXPORT/FUNCTION/FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
處理物件型別 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
處理物件型別 SCHEMA_EXPORT/TYPE/TYPE_BODY
處理物件型別 SCHEMA_EXPORT/JAVA_SOURCE/JAVA_SOURCE
處理物件型別 SCHEMA_EXPORT/JAVA_CLASS/JAVA_CLASS
處理物件型別 SCHEMA_EXPORT/MATERIALIZED_VIEW
已成功載入/解除安裝了主表 "YANGTK"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
YANGTK.SYS_EXPORT_SCHEMA_02
的轉儲檔案集為:
  E:\DMP\EXC_TABLES.DP
作業 "YANGTK"."SYS_EXPORT_SCHEMA_02" 已於 20:20:07 成功完成

上面這個例子就沒有匯出表型別,而其他和表沒有依賴關係的型別全部匯出。依賴於表存在的物件,比如索引、觸發器、約束、物件授權等也自動被過濾。

E:\>expdp yangtk/yangtk directory=d_output dumpfile=exc_t.dp exclude=table:"""LIKE 'T%'"""

Export: Release 10.2.0.1.0 - Production on 星期四, 29 1, 2009 20:26:43

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "YANGTK"."SYS_EXPORT_SCHEMA_02":  yangtk/******** directory=d_output dumpfile=exc_t.dp exclude=table:"LIKE 'T%'"
正在使用 BLOCKS 方法進行估計...
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 640 KB
處理物件型別 SCHEMA_EXPORT/USER
處理物件型別 SCHEMA_EXPORT/SYSTEM_GRANT
處理物件型別 SCHEMA_EXPORT/ROLE_GRANT
處理物件型別 SCHEMA_EXPORT/DEFAULT_ROLE
處理物件型別 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
處理物件型別 SCHEMA_EXPORT/TYPE/TYPE_SPEC
處理物件型別 SCHEMA_EXPORT/DB_LINK
處理物件型別 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
處理物件型別 SCHEMA_EXPORT/CLUSTER/CLUSTER
處理物件型別 SCHEMA_EXPORT/CLUSTER/INDEX
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE
處理物件型別 SCHEMA_EXPORT/TABLE/INDEX/INDEX
處理物件型別 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
處理物件型別 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
處理物件型別 SCHEMA_EXPORT/TABLE/COMMENT
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
處理物件型別 SCHEMA_EXPORT/FUNCTION/FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
處理物件型別 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
處理物件型別 SCHEMA_EXPORT/TYPE/TYPE_BODY
處理物件型別 SCHEMA_EXPORT/JAVA_SOURCE/JAVA_SOURCE
處理物件型別 SCHEMA_EXPORT/JAVA_CLASS/JAVA_CLASS
處理物件型別 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
處理物件型別 SCHEMA_EXPORT/TABLE/POST_TABLE_ACTION
處理物件型別 SCHEMA_EXPORT/MATERIALIZED_VIEW
處理物件型別 SCHEMA_EXPORT/TABLE/MATERIALIZED_VIEW_LOG
. .
匯出了 "YANGTK"."SYS_EXPORT_SCHEMA_01"             227.9 KB    1169
. .
匯出了 "YANGTK"."CHAINED_ROWS"                     81.25 KB    2118
. .
匯出了 "YANGTK"."MV_T"                             5.601 KB      23
. .
匯出了 "YANGTK"."MV_T_NUM"                         5.273 KB       1
. .
匯出了 "YANGTK"."MLOG$_MV_T"                           0 KB       0
已成功載入/解除安裝了主表 "YANGTK"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
YANGTK.SYS_EXPORT_SCHEMA_02
的轉儲檔案集為:
  E:\DMP\EXC_T.DP
作業 "YANGTK"."SYS_EXPORT_SCHEMA_02" 已於 20:27:06 成功完成

同樣對EXCLUDE也可以指定模糊匹配,所有被匹配的物件將不會匯出或匯入。

需要注意一點,EXCLUDEINCLUDE不能同時使用,否則會報錯:

E:\>expdp yangtk/yangtk directory=d_output dumpfile=test.dp include=table exclude=table:"""LIKE 'T%'"""

Export: Release 10.2.0.1.0 - Production on 星期四, 29 1, 2009 21:16:58

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

連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
UDE-00011:
引數 include 與引數 exclude 不相容

感覺資料泵還可以再改進一下,比如可以像流的RULE機制,給其中一個引數指定優先順序,使得使用者可以同時指定INCLUDEEXCLUDE引數。

 

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

相關文章