开发者社区> 技术小甜> 正文

data pump方式导入与导出(impdp,expdp)

简介:
+关注继续查看

 一、data pump概述:

data pump方式的导入和导出对应命令行impdp和expdp,这两个命令与imp、exp非常类似,但功能和效率差异巨大,或者说基本没什么相似的地方,并且exp命令生成的dump文件与expdp命令生成的dump文件也不兼容。

主要特性:

*  支持并行处理导入、导出任务。

*  支持暂停和重启动导入、导出任务

*  支持通过Database Link方式导出或导入远端数据库中对象。

*  支持在导入时通过REMAP_SCHEMA、REMAP_DATAFILE、REMAP_TABLESPACE几个参数实现导入过程中自动修改对象性属主、数据文件或所在表空间。

*  导入/导出时提供了非常细粒度的对象控制。

Data Pump 导入/导出工具是一个服务器端的工具,该工具一般在目标服务器上执行,导出或导入本地的对象(唯一的例外是通过IMPDP/EXPDP)的NETWORK_LINK参数,能够处理远端数据,不过这仍需要通过本地的Database Link对象)到本地磁盘,并且通过DUMPFILE参数指定Dump文件,并不是指定本地的详细文件路径,而只是指定文件名,另一参数DIRECTORY用来指定dump文件所在路径。注意directory参数也并非直接指定本地磁盘路径,而是指定oracle数据库的Directory对象。

二、Data Pump有以下几种方式导入或导出数据:

 * 直接路径方式  (默认使用此方式处理数据)

 * 外部表方式

 *  复制数据文件方式

 *  网络链接方式。

三、调用方式:

1、命令方式调用,类似imp、exp使用

如:expdp scott/tiger dumpfile=

2、参数文件方式调用

如:expdp username/password@tnsname parfile=parameter.dat logfile=log.log

3、交互方式调用

四、操作模式:

1、整库模式,对应参数FULL

2、schema模式,对应参数SCHEMA,中对应多个对象

3、表模式,对应参数tables

4、表空间模式,对应参数tablespaces

5、传输表空间模式,对应参数:transport_tablespaces

五、过滤数据:

Data Pump实现对表中记录的过滤依赖于QUERY和SAMPLE两个参数,

query参数与exp命令下使用相似,如,表a仅导出所有ID>5的记录,表b导出所有ID<30的记录:query=A:"WHERE ID>5",B:"WHERE ID<30"

SAMPLE :用来指定导出数据的百分比,可指定值的范围从0.000001到99.999999

语法如下:

SAMPLE =[[schema_name.]table_name:]sample_percent

指定该参数后,expdp导出将自动控制导出的记录量。如导出a表中50%的记录,设置sample参数如下:

sample=a:50

 六、过滤对象

data pump 中过滤对象也是两个参数:EXCLUDE和INCLUDE  (排除与包含)

1、exclude 反规则

指定不被包含的对象类型或对象名称,exclude=object_type[:name_clause][,...]

如:exclude=index:"like 'idx_table%'",constraint:"like 'ckc_tblb%'",grant

 

2、include 正规则

指定包含的对象类型或对象名称。使用与exclude一样

 ============================================================

以下操作示例:

在使用impdp/expdp命令前,首先需创建相关directory对象,并授予相应用户读写权限

查看系统目录对象:select * from dba_directaries;

注意上述路径:如是在linux下指定路径为/   例如:

create directory dump_file_dir as '/u02/oradata/dmp'

1、以下导出emp、dept表,并指定只导出emp表中sal>1500的数据:

上述语句需注意的是,在使用query参数时,转义字符需注意,windows传说是使用双引号转义,但实验好像不是传说那样子的,也跟linux下一样使用“\”来转义。为了避免转义字符问题,可以使用指定parfile来执行。

 建立相对应该的parfile文件如下,并保存为par1.par:

directory=dump_file_dir
dumpfile=expdp_20120522.dmp
logfile=expdp_201205.log
tables=(emp,dept)
query=emp:"where sal>1500"

在linux服务器端执行:

 2、高级过滤示例:

建立如下par2.par:

directory=dump_file_dir
dumpfile=expdp_20120522_02.dmp
logfile=expdp_201205_02.log
include=table:"like 'EMP%'"
query=emp:"where sal>1500"

 注意:上述like条件里面的大小写

执行结果:

 3、跨数据库链接方式导出数据:

4、并行方式导出提高效率:

 以下为导出ming对象,不加任何参数:

导出数据大小为:1.67G, 用时为:2分40秒,由于数据量较小,所以体现不了expdp效率。

除了默认参数外,expdp真正提高效率的参数是parallel,即指并行度。需要注意的是,使用parallel参数同时需使用filesize参数,以下示例:

 parallel=4时效果也不是很明显。

parallel=2时,也是差不多,

由于数据量不大,所以体现不了expdp的效率。

但同时需要注意的效率是否真正提升,并不是只增加并行参数,具体要视情况而定。

 

七、导入对象到目标SCHEMA:

需求:导出a服务器中scott用户下的对象,到b服务器中同名用户,用户名和默认表空间均相同。

        在imp命令环境下,如果想只导入对象定义而不导入数据,可以通过参数ROWS=n来实现,而impdp没有提供rows参数,不过它提供了一个更专业的参数:content,该参数有三个属性值:

*  ALL:导入对象定义和数据,该参数的默认值就是all

*  DATA_ONLY:只导入数据

*  METADATA_ONLY: 只导入对象定义

示例:只导入对象定义。

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

近段时间工作较忙,后续有时间继续更新……

















本文转自pimg200551CTO博客,原文链接: http://blog.51cto.com/pimg2005/863341,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[20180224]理解exp direct导出操作.txt
[20180224]理解exp direct导出操作.txt 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------...
947 0
EasyUI----DataGrid 导出 Excel
<div class="markdown_views"> <p>最近做的安防项目有个功能,需要把DataGrid中的数据导出,下面通过代码一步一步的介绍; <br> 首先在js中写一个扩展类,主要的功能是把DataGrid中的数据转换成Excel的XML格式</p> <pre class="prettyprint"><code class=" hljs scilab"><
1991 0
EXPDP ORA-31634 ---导出的错误
场景描述:每天晚上一个定时脚本,导出的备份空间不足,手动导出报如下错误: ORA-31634: job already exists(JOB已经存在) ORA-31664: unable to construct unique job name when defaulted(采用...
2159 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
17679 0
将Excel导入到DataTable (用ODBC方法连接)
///         /// 将Excel导入到DataTable (用ODBC方法连接)(LiPu)         ///         /// excel 路径         ///         ///         public DataTable Excel...
821 0
Python:环境变量设置PYTHONPATH解决impor导入模块报错
Python:环境变量设置PYTHONPATH解决impor导入模块报错
34 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载