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

yangtingkun發表於2009-01-18

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

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

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

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

 

 

在使用傳統匯入匯出工具EXP/IMP的時候,大部分時候是表結果和資料一起匯出,而有的時候只需要匯出表結構,這是透過引數ROWS=N來實現的。這個引數在EXP/IMP過程中都可以指定。EXPIMPROWS引數經常會被用到,這裡就不單獨透過例子來演示了。

而在資料泵中,這個功能被CONTENT引數所取代。同樣,CONTENT引數在EXPDP/IMPDP兩個命令中都可以指定。其中CONTENT引數的ALL選項對應EXP/IMPROWS=Y,而CONTENT引數的METADATA_ONLY對應EXP/IMPROWS=N

E:\>expdp yangtk/yangtk directory=d_output dumpfile=yangtk_all.dp content=all

Export: Release 10.2.0.1.0 - Production on 星期日, 18 1, 2009 21:04:29

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=yangtk_all.dp content=all
正在使用 BLOCKS 方法進行估計...
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 18.56 MB
處理物件型別 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/MATERIALIZED_VIEW
. .
匯出了 "YANGTK"."T_HASH"                           5.687 KB      30
. .
匯出了 "YANGTK"."T_PART_INDEX"                     2.227 MB   57477
. .
匯出了 "YANGTK"."T_INDEX_ORG"                      1.500 MB   40676
. .
匯出了 "YANGTK"."T_PART":"P4"                      1.588 MB   50346
. .
匯出了 "YANGTK"."T_RECORD"                         473.9 KB   40000
. .
匯出了 "YANGTK"."SYS_EXPORT_SCHEMA_01"             227.9 KB    1169
. .
匯出了 "YANGTK"."CHAINED_ROWS"                     81.25 KB    2118
. .
匯出了 "YANGTK"."T_PARTITION":"P2"                 44.82 KB    1541
. .
匯出了 "YANGTK"."MV_T"                             5.601 KB      23
. .
匯出了 "YANGTK"."MV_T_NUM"                         5.273 KB       1
. .
匯出了 "YANGTK"."T"                                 5.25 KB       5
. .
匯出了 "YANGTK"."TEST"                             6.101 KB       7
. .
匯出了 "YANGTK"."T_255"                            82.89 KB       1
. .
匯出了 "YANGTK"."T_256"                            83.19 KB       1
. .
匯出了 "YANGTK"."T_C_1"                            5.234 KB       2
. .
匯出了 "YANGTK"."T_C_2"                             5.25 KB       2
. .
匯出了 "YANGTK"."T_LEVEL"                          6.234 KB       6
. .
匯出了 "YANGTK"."T_LEVEL1"                         6.585 KB       8
. .
匯出了 "YANGTK"."T_LOAD_SPACE"                     5.585 KB       5
. .
匯出了 "YANGTK"."T_NO_EXISTS_BEFORE"               5.257 KB       1
. .
匯出了 "YANGTK"."T_NUM"                            4.968 KB       2
. .
匯出了 "YANGTK"."T_PART":"P1"                      6.742 KB      99
. .
匯出了 "YANGTK"."T_PART":"P2"                      7.078 KB     100
. .
匯出了 "YANGTK"."T_PART":"P3"                      7.359 KB     100
. .
匯出了 "YANGTK"."T_PARTITION":"P1"                 6.804 KB      99
. .
匯出了 "YANGTK"."T_PART_RANGE":"P1"                5.234 KB       1
. .
匯出了 "YANGTK"."T_PART_RANGE":"P2"                5.234 KB       1
. .
匯出了 "YANGTK"."T_PART_RANGE":"P3"                5.234 KB       1
. .
匯出了 "YANGTK"."T_TREE"                           5.960 KB       9
. .
匯出了 "YANGTK"."T_CHAR"                               0 KB       0
. .
匯出了 "YANGTK"."T_FUNCTION"                           0 KB       0
. .
匯出了 "YANGTK"."T_TAB"                                0 KB       0
. .
匯出了 "YANGTK"."T_YANGTK"                             0 KB       0
已成功載入/解除安裝了主表 "YANGTK"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
YANGTK.SYS_EXPORT_SCHEMA_02
的轉儲檔案集為:
  E:\DMP\YANGTK_ALL.DP
作業 "YANGTK"."SYS_EXPORT_SCHEMA_02" 已於 21:05:27 成功完成


E:\>expdp yangtk/yangtk directory=d_output dumpfile=yangtk_meta.dp content=metadata_only

Export: Release 10.2.0.1.0 - Production on 星期日, 18 1, 2009 22:43:23

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=yangtk_meta.dp content=metadata_only
處理物件型別 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/MATERIALIZED_VIEW
已成功載入/解除安裝了主表 "YANGTK"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
YANGTK.SYS_EXPORT_SCHEMA_02
的轉儲檔案集為:
  E:\DMP\YANGTK_META.DP
作業 "YANGTK"."SYS_EXPORT_SCHEMA_02" 已於 22:43:39 成功完成

資料泵還能實現EXP/IMP所不能實現的功能,就是隻匯出資料,而不匯出表結果即DATA_ONLY引數。

E:\>expdp yangtk/yangtk directory=d_output dumpfile=yangtk_data.dp content=data_only

Export: Release 10.2.0.1.0 - Production on 星期日, 18 1, 2009 22:46:33

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=yangtk_data.dp content=data_only
正在使用 BLOCKS 方法進行估計...
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 18.56 MB
. .
匯出了 "YANGTK"."T_HASH"                           5.687 KB      30
. .
匯出了 "YANGTK"."T_PART_INDEX"                     2.227 MB   57477
. .
匯出了 "YANGTK"."T_INDEX_ORG"                      1.500 MB   40676
. .
匯出了 "YANGTK"."T_PART":"P4"                      1.588 MB   50346
. .
匯出了 "YANGTK"."T_RECORD"                         473.9 KB   40000
. .
匯出了 "YANGTK"."SYS_EXPORT_SCHEMA_01"             227.9 KB    1169
. .
匯出了 "YANGTK"."CHAINED_ROWS"                     81.25 KB    2118
. .
匯出了 "YANGTK"."T_PARTITION":"P2"                 44.82 KB    1541
. .
匯出了 "YANGTK"."MV_T"                             5.601 KB      23
. .
匯出了 "YANGTK"."MV_T_NUM"                         5.273 KB       1
. .
匯出了 "YANGTK"."T"                                 5.25 KB       5
. .
匯出了 "YANGTK"."TEST"                             6.101 KB       7
. .
匯出了 "YANGTK"."T_255"                            82.89 KB       1
. .
匯出了 "YANGTK"."T_256"                            83.19 KB       1
. .
匯出了 "YANGTK"."T_C_1"                            5.234 KB       2
. .
匯出了 "YANGTK"."T_C_2"                             5.25 KB       2
. .
匯出了 "YANGTK"."T_LEVEL"                          6.234 KB       6
. .
匯出了 "YANGTK"."T_LEVEL1"                         6.585 KB       8
. .
匯出了 "YANGTK"."T_LOAD_SPACE"                     5.585 KB       5
. .
匯出了 "YANGTK"."T_NO_EXISTS_BEFORE"               5.257 KB       1
. .
匯出了 "YANGTK"."T_NUM"                            4.968 KB       2
. .
匯出了 "YANGTK"."T_PART":"P1"                      6.742 KB      99
. .
匯出了 "YANGTK"."T_PART":"P2"                      7.078 KB     100
. .
匯出了 "YANGTK"."T_PART":"P3"                      7.359 KB     100
. .
匯出了 "YANGTK"."T_PARTITION":"P1"                 6.804 KB      99
. .
匯出了 "YANGTK"."T_PART_RANGE":"P1"                5.234 KB       1
. .
匯出了 "YANGTK"."T_PART_RANGE":"P2"                5.234 KB       1
. .
匯出了 "YANGTK"."T_PART_RANGE":"P3"                5.234 KB       1
. .
匯出了 "YANGTK"."T_TREE"                           5.960 KB       9
. .
匯出了 "YANGTK"."T_CHAR"                               0 KB       0
. .
匯出了 "YANGTK"."T_FUNCTION"                           0 KB       0
. .
匯出了 "YANGTK"."T_TAB"                                0 KB       0
. .
匯出了 "YANGTK"."T_YANGTK"                             0 KB       0
已成功載入/解除安裝了主表 "YANGTK"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
YANGTK.SYS_EXPORT_SCHEMA_02
的轉儲檔案集為:
  E:\DMP\YANGTK_DATA.DP
作業 "YANGTK"."SYS_EXPORT_SCHEMA_02" 已於 22:46:52 成功完成

當然傳統的EXP/IMP雖然不能實現不匯出表結構,但是在IMP的時候使用IGNORE=Y引數,可以忽略表已經存在而導致的建表操作,從這個意義上講,變相實現了只匯入資料的功能。

在資料泵中,源資訊是透過DBMS_METADATA包從資料字典中抽取出來的,以XML格式存放到資料泵中,也正是這個原因使得資料泵處理源資料的能力大大增強,這會在以後的文章中陸續介紹。

 

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

相關文章