datapumpdir oracle_EXPDP IMPDP Oracle Data Pump(数据泵) 概要与tips

Data Pump(数据泵)是什么

与到10g以前的exp/imp(原始的导入/导出)相同的功能+有更多的附加功能与新功能

数据以及源数据的高速加载、卸载

比Exp/imp速度高几倍

与Exp/imp 相同的功能,进一步的附加功能

并行处理、外部表

exp/imp的互换性

exp/imp 与Data Pump中,转储文件没有互换性

10g中也可以使用exp/imp功能

使用方法

expdp/impdp命令

Enterprise Manager

DBMS_DATAPUMP PL/SQL package

其他,外部表等作为引擎来内部使用

相关资料

Oracle Database Utility  11g 发行版本1(11.1)

http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05768-02/toc.htm

Data Pump概要图

expdp/impdp与exp/imp比较

Data Pump的导出工具(expdp)

Expdp中可以使用的模式

— full 全库导出 示例, 一般不推荐全库导出!因为一般你都是导出你的应用程序用户数据啊!!你要SYS/SYSTEM的数据干什么呢?对不对啊!

$ expdp scott/tiger full=y

— 表模式例

$ expdp scott/tiger dumpfile=exp.dmp tables=emp,dept

因为在Data Pump中,不是通过客户端而是通过服务器来执行写出的,所以需要指定执行处理的目录位置;(事先准备)对于导出转储文件的目录,在DB上制成目录对象。(执行时)通过DIRECTORY参数来指定目录对象

— 制成目录对象

SQL > CREATE DIRECTORY DPUMP_DIR1 AS ‘/home/oracle/oradata/dpump_dir’;

— 赋予权限

SQL > GRANT READ, WRITE ON DIRECTORY dpump_dir1 TO scott;

$  expdp scott/tiger tables=emp,dept directory=dpump_dir1

如果没有用参数指定目录时,没有OS环境变量「DATA_PUMP_DIR」的话,请参考目录对象「DATA_PUMP_DIR」。

— 设定环境变量

$  set DATA_PUMP_DIR=DPUMP_DIR1; export DATA_PUMP_DIR

$  expdp scott/tiger schemas=scott

Export – filter处理

基于filter处理,可以详细设定成为导出对象的object。

用INCLUDE参数指定导出对象object

$  expdp scott/tiger include=table

$  expdp scott/tiger include=index

用EXCLUDE参数指定从导出对象排除的object

$  expdp scott/tiger exclude=index:\”LIKE \’EMP%\’\”

可以指定LIKE以及IN

INCLUDE以及EXCLUDE参数是排他的,请不要同时指定

为了不用间隔符来分割空白,需要双引号

也有由于OS,可能会需要转义字符==》所以这里有参数文件(parfile)的话 比较简单

导出参数文件

可以读入记述参数的文件

参数文件中不需要转义字符

制成记述了参数的文件,执行时指定PARFILE参数

–参数文件内容确认

$  cat parfile.txt

EXCLUDE=TABLE:”IN(‘DEPT’,’EMP)”

EXCLUDE=INDEX:”LIKE ‘EMP%’”

EXCLUDE=PROCEDURE

DIRECTORY=dpump_dir

— 指定参数文件导出

$  expdp scott/tiger parfile=parfile.txt

导出并行化

并行导出

可以并行执行导出处理

用PARALLEL参数可以指定并行度

可以各自指定导出地址目录

— 指定并列度

$  expdp scott/tiger parallel=3 dumpfile=dpump_dir1:expdat%U.dmp, dpump_dir2%U.dmp

— 确认刚刚生成的转储文件

$  ls –lR

dpump_dir1:

…….expdat01.dmp

…….expdat02.dmp

dpump_dir2:

…….expdat01.dmp

没有指定替换变量时(%U),dumpfile的文件数需要配合parallel的数值

指定时,被指定的文件在Round robin中使用

导出估计 estimate

不生成转储文件,可以估计被生成转储文件的尺寸

可以用ESTIMATE参数指定估计模式

参数值中可以如下所示进行设定

BLOCKS…块尺寸中,对object的块数进行估计(精度不高)

STATISTICS…以统计信息为基础的估计(高精度)

仅仅导出估计时,请指定ESTIMATE_ONLY=y

$  expdp scott/tiger tables=emp,dept estimate=blocksestimate_only=y

导出估计 estimate 例子

制成40万行,2GB的数据,测量估计精度

BLOCKS

$  expdp scott/tiger tables=test estimate=blocksestimate_only=y

Estimate in progress using BLOCKS method…

Processing object type TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATA

.  estimated “SCOTT”.“TEST”                         3.062 GB

Total estimation using BLOCKS method:3.062 GB

STATISTICS

$  expdp scott/tiger tables=test estimate=statisticsestimate_only=y

Estimate in progress using STATISTICS method…

Processing object type TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATA

.  estimated “SCOTT”.“TEST”                         1.947 GB

Total estimation using STATISTICS method:1.947 GB

确认实际的尺寸

$  ls –l

……. 2092179456 ….expdat.dmp  约1.948GB

导入

通过用impdp可以指定参数,从用expdp制成的转储文件中进一步缩小对象数据范围,就可以进行导入了

缩小对象数据范围的例子

–从转储文件中仅仅导出emp表以及dept表

$  impdp scott/tiger tables=emp,dept

–从转储文件中仅仅导出索引

$  impdp scott/tiger include=index

外部表(卸载/加载)

使用9i开始搭载的功能——外部表,就可以在外部文件中高速地将数据卸载

被制成的是二进制文件

可以重新加载被卸载的外部文件

9i 外部表与 10g 以后的外部表的差异

Oracle 9i

Oracle 10g以后

仅仅加载

可加载/卸载

制成以外部文件(CSV文件)为基础的外部表

卸载后可以已制成的文件为基础制成外部表

利用ORACLE_LOADER

利用ORACLE_DATAPUMP型

可以并行化

外部表–卸载

利用外部表的功能,可以卸载数据

利用9i中也可以使用的外部表的句法,在数据型中指定ORACLE_DATAPUMP

通过记录SQL的查询可以自由卸载

SQL> create table dept_external1

organization external(

typeoracle_datapump

default directory dpump_dir

location(‘dept.dmp’) )

as select * from dept;

用DPUMP_DIR指定的目录下会制成名为「dept.dmp」的转储文件

利用外部表的功能,读入被卸载的转储文件可以加载

–利用外部表的功能,加载被卸载的转储文件

SQL> create table dept_external2 (

DEPTNO         NUMBER(2),

DNAME          VARCHAR2(14),

LOC                VARCHAR2(13)

) organization external (

typeoracle_datapump

default directorydpump_dir

location (‘dept.dmp‘)

);

已制成的外部文件可以与一般的表一样进行SELECT查询

无法进行插入/删除等DML操作

作为外部文件,指定被卸载的转储文件

Data Pump 11g新功能

11g新功能

压缩转储文件(Advanced Compression Option)

压缩数据以及元数据可以在转储文件中导出。

转储文件加密(Advanced Security Option)

将数据与元数据加密可以在转储文件中导出。

分区的导入方法

可以选择分区表的导入方法

数据变换(DATA_REMAP API )

变换特定的column的数据可以进行导入

Data Pump压缩

COMPRESSION={ALL | DATA_ONLY | METADATA_ONLY | NONE}

NONE…导出操作中压缩无效

METADATA_ONLY(default)…所有的元数据都以压缩形式写入到转储文件中

(以下的操作需要Advanced Compression选项)

DATA_ONLY…所有的数据都以压缩形式写入到转储文件中

ALL…同时压缩数据元数据

(例)指定架构。同时压缩数据,元数据,对转储文件scott.dmp导出

$expdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=scott.dmp COMPRESSION=ALL SCHEMAS=scott

Data Pump加密

ENCRYPTION = {ALL | DATA_ONLY | ENCRYPTED_COLUMNS_ONLY | METADATA_ONLY | NONE}

ALL:所有的数据以及元数据加密有效

DATA_ONLY:仅对数据加密

ENCRYPTED_COLUMNS_ONLY:仅对已加密的列进行加密

METADATA_ONLY:仅对元数据加密

NONE:数据不被加密

(例)转储文件中仅仅对数据加密的操作

$ expdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=scott_enc.dmp SCHEMAS=scott ENCRYPTION=data_only ENCRYPTION_PASSWORD=tiger

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值