Oracle的导入导出工具EXP/IMP由来已久,大部分人对于使用这两个工具也都不陌生。Oracle10g开始推出的数据泵EXPDP/IMPDP,提供了导入导出的性能,也增加了导入导出的功能,但是由于使用时间不长,可能部分人对这个工具不太了解。一直打算写几篇文章,简单描述一下EXP/IMP和EXPDP/IMPDP的差异。
对比数据泵与原始导入导出工具(一):http://yangtingkun.itpub.net/post/468/476017
对比数据泵与原始导入导出工具(二):http://yangtingkun.itpub.net/post/468/476060
这篇描述数据泵的CONTENT参数。
在使用传统导入导出工具EXP/IMP的时候,大部分时候是表结果和数据一起导出,而有的时候只需要导出表结构,这是通过参数ROWS=N来实现的。这个参数在EXP/IMP过程中都可以指定。EXP和IMP的ROWS参数经常会被用到,这里就不单独通过例子来演示了。
而在数据泵中,这个功能被CONTENT参数所取代。同样,CONTENT参数在EXPDP/IMPDP两个命令中都可以指定。其中CONTENT参数的ALL选项对应EXP/IMP的ROWS=Y,而CONTENT参数的METADATA_ONLY对应EXP/IMP的ROWS=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博客 ” ,链接:https://blog.itpub.net/4227/viewspace-541370/ ,如需转载,请注明出处,否则将追究法律责任。