Oracle的11gr2版本中,并没有对数据泵做出多大的改动,主要是增加了对原始版本参数的支持,并且去掉了一些小的限制。

这一篇介绍数据泵的Legacy模式。



在11.2中推出的这个功能主要是EXP/IMP工具要逐渐地推出历史舞台了。虽然无论从功能上还是从性能上,数据泵导入导出都要优于传统的导出导入工具EXP/IMP,但是如果用户包含了大量的脚本调用EXP,那么全部迁移到EXPDP方式就会非常麻烦。

而数据库的LEGACY模式就是为了能将传统的导出、导入方式平滑的迁移到数据泵方式下。

[oracle@bjtest ~]$ expdp yangtk/yangtk file=t.dmp


Export: Release11.2.0.1.0 - Production on星期日9月6 22:32:43 2009


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production


With the Partitioning, OLAP, Data Mining and Real Application Testing options


由于以下参数,旧有模式处于活动状态:


旧有模式参数: "file=t.dmp"位置: Command Line,替换为: "dumpfile=t.dmp"


旧有模式设置了reuse_dumpfiles=true参数。


旧有模式设置了nologfile=true参数。


启动"YANGTK"."SYS_EXPORT_SCHEMA_01":  yangtk/******** dumpfile=t.dmp reuse_dumpfiles=true nologfile=true


正在使用BLOCKS方法进行估计...


处理对象类型SCHEMA_EXPORT/TABLE/TABLE_DATA


使用BLOCKS方法的总估计: 4 MB


处理对象类型SCHEMA_EXPORT/USER


处理对象类型SCHEMA_EXPORT/SYSTEM_GRANT


处理对象类型SCHEMA_EXPORT/ROLE_GRANT


处理对象类型SCHEMA_EXPORT/DEFAULT_ROLE


处理对象类型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA


处理对象类型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


. .导出了"YANGTK"."T"                                2.886 MB   71968行


已成功加载/卸载了主表"YANGTK"."SYS_EXPORT_SCHEMA_01"


******************************************************************************


YANGTK.SYS_EXPORT_SCHEMA_01的转储文件集为:


 /data/oracle/admin/test112/dpdump/t.dmp


作业"YANGTK"."SYS_EXPORT_SCHEMA_01"已于22:33:25成功完成


可以看到,FILE是EXP的参数,由于指定了EXP的——参数,EXPDP自动变成了Legacy模式,为了保持和exp工具完全相同的导出效果,因此expdp使用了DUMPFILE指定文件名称,并指定reuse_dumpfiles参数和nologfile参数。

需要说明的是,虽然expdp支持exp的参数,但是导出仍然是按照EXPDP方式进行的,导出文件也是存放在数据库服务器上。而且EXPDP无法导出EXP格式的文件,IMPDP无法使用EXP导出的文件,同样EXPDP的LEGACY方式导出的文件也无法供IMP使用。

还要注意,当前没有使用DIRECTORY参数,不过这个参数还是必须的,否则就要使用默认值DATA_PUMP_DIR,如果用户没有DATA_PUMP_DIR的访问权限,就会报错。当然不过不想通过参数的方式指定DIRECTORY,还可以设置环境变量DATA_PUMP_DIR的值。

在导出的Legacy方式下,也支持各种数据泵的参数。而对于一些没有意义传统参数,比如buffer,则会自动被数据泵所忽略。

最后看一个复杂一点的例子:

SQL> conn yangtk/yangtk


已连接。


SQL> create directory d_output as '/home/oracle';    


目录已创建。


SQL> exit


从Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production


With the Partitioning, OLAP, Data Mining and Real Application Testing options断开


[oracle@bjtest ~]$ export DATA_PUMP_DIR=d_output


[oracle@bjtest ~]$ expdp yangtk/yangtk file=t.dp tables=t buffer=20480000 compress=n grants=n


Export: Release11.2.0.1.0 - Production on星期一9月7 00:05:31 2009


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production


With the Partitioning, OLAP, Data Mining and Real Application Testing options


由于以下参数,旧有模式处于活动状态:


忽略旧有模式参数: "buffer=20480000"位置: Command Line。


忽略旧有模式参数: "compress=FALSE"位置: Command Line。


旧有模式参数: "file=t.dp"位置: Command Line,替换为: "dumpfile=D_OUTPUT:t.dp"


数据库目录对象"D_OUTPUT"已添加到文件说明: "t.dp"。


旧有模式参数: "grants=FALSE"位置: Command Line,替换为: "exclude=grant"


旧有模式设置了reuse_dumpfiles=true参数。


旧有模式设置了nologfile=true参数。


数据库目录对象已默认设置为: "d_output"。


启动"YANGTK"."SYS_EXPORT_TABLE_01":  yangtk/******** dumpfile=D_OUTPUT:t.dp tables=t exclude=grant reuse_dumpfiles=true nologfile=true


正在使用BLOCKS方法进行估计...


处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA


使用BLOCKS方法的总估计: 4 MB


处理对象类型TABLE_EXPORT/TABLE/TABLE


. .导出了"YANGTK"."T"                                2.886 MB   71968行


已成功加载/卸载了主表"YANGTK"."SYS_EXPORT_TABLE_01"


******************************************************************************


YANGTK.SYS_EXPORT_TABLE_01的转储文件集为:


 /home/oracle/t.dp


作业"YANGTK"."SYS_EXPORT_TABLE_01"已于00:05:38成功完成


再看一个混和IMP和IMPDP参数的例子:

[oracle@bjtest ~]$ impdp yangtk/yangtk file=t.dp buffer=2048000 ignore=y directory=d_output content=data_only


Import: Release11.2.0.1.0 - Production on星期一9月7 00:21:14 2009


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production


With the Partitioning, OLAP, Data Mining and Real Application Testing options


由于以下参数,旧有模式处于活动状态:


忽略旧有模式参数: "buffer=2048000"位置: Command Line。


旧有模式参数: "file=t.dp"位置: Command Line,替换为: "dumpfile=t.dp"


旧有模式参数: "ignore=TRUE"位置: Command Line,替换为: "table_exists_action=append"


已成功加载/卸载了主表"YANGTK"."SYS_IMPORT_FULL_01"


启动"YANGTK"."SYS_IMPORT_FULL_01":  yangtk/******** dumpfile=t.dp table_exists_action=append directory=d_output content=data_only


处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA


. .导入了"YANGTK"."T"                                2.886 MB   71968行


作业"YANGTK"."SYS_IMPORT_FULL_01"已于00:21:19成功完成


如果通过连接的方式,可以确保所有的exp备份脚本不需要修改就可以顺利运行:

[oracle@bjtest ~]$ ln -s $ORACLE_HOME/bin/expdp exp


[oracle@bjtest ~]$ ls -l exp


lrwxrwxrwx 1 oracle oinstall 35 Sep  7 00:22 exp -> /data/oracle/product/11.2/bin/expdp


[oracle@bjtest ~]$ ./exp yangtk/yangtk file=t.dp content=metadata_only


Export: Release11.2.0.1.0 - Production on星期一9月7 00:23:41 2009


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production


With the Partitioning, OLAP, Data Mining and Real Application Testing options


由于以下参数,旧有模式处于活动状态:


旧有模式参数: "file=t.dp"位置: Command Line,替换为: "dumpfile=D_OUTPUT:t.dp"


数据库目录对象"D_OUTPUT"已添加到文件说明: "t.dp"。


旧有模式设置了reuse_dumpfiles=true参数。


旧有模式设置了nologfile=true参数。


数据库目录对象已默认设置为: "d_output"。


启动"YANGTK"."SYS_EXPORT_SCHEMA_01":  yangtk/******** dumpfile=D_OUTPUT:t.dp content=metadata_only reuse_dumpfiles=true nologfile=true


处理对象类型SCHEMA_EXPORT/USER


处理对象类型SCHEMA_EXPORT/SYSTEM_GRANT


处理对象类型SCHEMA_EXPORT/ROLE_GRANT


处理对象类型SCHEMA_EXPORT/DEFAULT_ROLE


处理对象类型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA


处理对象类型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


已成功加载/卸载了主表"YANGTK"."SYS_EXPORT_SCHEMA_01"


******************************************************************************


YANGTK.SYS_EXPORT_SCHEMA_01的转储文件集为:


 /home/oracle/t.dp


作业"YANGTK"."SYS_EXPORT_SCHEMA_01"已于00:24:23成功完成



oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html