您在这里:首页 > 学员专区 > 技术文章
Oracle视频
Oracle
CUUG课程

Oracle11gr2数据泵新特性(一)

 

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成功完成

 

 

(以上内容摘于网络,如有侵权,请告之,将第一时间删除)

相关文章 [上一篇] Oracle11gr2新增版本功能(二)
010-88589926(88587026)
CUUG热门培训课程
Oracle DBA就业培训
CUUG名师
网络课程
技术沙龙
最新动态

总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089 
中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号  京公网安备110108006275号