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,如需转载请自行联系原作者


相关文章
|
Shell
xhost: unable to open display ":0.0"
-bash: xhost: 未找到命令 原因是因未没有安装相关的包(其他类似command not found命令没有可以用这种方式解决) yum whatprovides "*/xhost" 安装对应版本
2177 0
|
Java 开发工具 Spring
Spring Boot 接入支付宝,实战来了!
支付宝推出了新的转账接口alipay.fund.trans.uni.transfer(升级后安全性更高,功能更加强大) ,老转账接口alipay.fund.trans.toaccount.transfer将不再维护,新老接口的一个区别就是新接口采用的证书验签方式。
Spring Boot 接入支付宝,实战来了!
|
4月前
|
数据可视化 JavaScript 前端开发
股票账户模拟生成器,股票交割单生成器,证券持仓收益曲线图
完整的股票模拟系统包含账户管理、交易记录和可视化分析三大模块,使用纯JavaScript实现
|
10月前
|
SQL Java 测试技术
Cause: dm.jdbc.driver.DMException: Digital overflow
在测试环境中遇到报错:`org.apache.ibatis.type.TypeException`,原因是为参数#1设置非空值时JdbcType为空,最终导致`dm.jdbc.driver.DMException: Digital overflow`。经分析发现,测试环境中的`invoiceId`字段类型为`BIGINT`,而传入的字符串值超出了`BIGINT`的最大长度,导致数字溢出。本地环境中该字段为`varchar(64)`,因此未出现此问题。调整测试环境表结构后,问题得以解决。
|
12月前
|
SQL Oracle 关系型数据库
PLSQL还原DMP数据库的详细步骤
PLSQL还原DMP数据库的详细步骤
1068 6
|
Ubuntu Linux
在Linux中,如何修改IP地址、网关和主机名?
在Linux中,如何修改IP地址、网关和主机名?
|
SQL Oracle 关系型数据库
[oracle]使用impdp导入数据时卡在视图
[oracle]使用impdp导入数据时卡在视图
517 2
|
存储 算法 NoSQL
(七)漫谈分布式之一致性算法下篇:一文从根上儿理解大名鼎鼎的Raft共识算法!
Raft通过一致性检查,能在一定程度上保证集群的一致性,但无法保证所有情况下的一致性,毕竟分布式系统各种故障层出不穷,如何在有可能发生各类故障的分布式系统保证集群一致性,这才是Raft等一致性算法要真正解决的问题。
328 11
|
Shell Linux
7-11|清华源下载salt-minion
7-11|清华源下载salt-minion
|
SQL Oracle 关系型数据库
关系型数据库Oracle备份工具
【7月更文挑战第19天】
409 4