1数据泵与传统工具exp/imp优劣比较

1.1优势

(1)Exp/imp是客户端工具,导入导出的效率受到网络影响;数据泵是服务器端工具,直接把转储文件导入到数据库上,不受网路影响。

(2)Exp/imp通常是单线程工作;数据泵实际是实例活动,可以多进程,多cpu并行处理,充分利用硬件资源。

(3)Imp/exp工具必须一次性完成,数据泵支持断续工作。

(4)数据泵优化了默认参数,避免了因为没有设置正确的buffer造成效率底下。

(5)数据泵支持交互操作。

(6)Exp/imp工具仅仅支持trigger, INDEXES、GRANDS、TRIGGERS、CONSTRAINTS和STATISTICS对象的过滤,数据泵则通过include和exclude支持任意类型对象过滤。

(7)对于一些类似功能如指定表空间、过滤导出、加密、压缩,数据泵也做了一些优化,使得效率更高,操作更加简单。

1.2劣势

(1)数据泵只能在数据库上操作,exp/imp是客户端工具,操作简单方便。

(2)Exp/imp适用于各版本的数据库,支持跨版本数据迁移,数据泵是10g新出的工具,只适用于10g以后的数据库。

综上所述,数据泵远远强于传统工具,下面情况下才考虑使用exp/imp工具

(1)无法直接登录到数据库的操作系统;

(2)网络状况良好,而且导出的数据量很少(例如小表迁移);

(3)据库从9i迁移到高版本;

2 帮助信息:

查看expdp工具的帮助信息,着重关注其功能描述以及默认值。

C:\Users\Administrator>expdp  help=y

数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输

数据对象的机制。该实用程序可以使用以下命令进行调用:

示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制导出的运行方式。具体方法是: 在 'expdp' 命令后输入

各种参数。要指定各参数, 请使用关键字:

格式:  expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott

或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字               说明 (默认)

------------------------------------------------------------------------------

ATTACH                连接到现有作业, 例如 ATTACH [=作业名]。

COMPRESSION           减小有效的转储文件内容的大小

关键字值为: (METADATA_ONLY) 和 NONE。

CONTENT               指定要卸载的数据, 其中有效关键字为:

(ALL), DATA_ONLY 和 METADATA_ONLY。

DIRECTORY             供转储文件和日志文件使用的目录对象。

DUMPFILE              目标转储文件 (expdat.dmp) 的列表,

例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。

ENCRYPTION_PASSWORD   用于创建加密列数据的口令关键字。

ESTIMATE              计算作业估计值, 其中有效关键字为:

(BLOCKS) 和 STATISTICS。

ESTIMATE_ONLY         在不执行导出的情况下计算作业估计值。

EXCLUDE               排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。

FILESIZE              以字节为单位指定每个转储文件的大小。

FLASHBACK_SCN         用于将会话快照设置回以前状态的 SCN。

FLASHBACK_TIME        用于获取最接近指定时间的 SCN 的时间。

FULL                  导出整个数据库 (N)。

HELP                  显示帮助消息 (N)。

INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。

JOB_NAME              要创建的导出作业的名称。

LOGFILE               日志文件名 (export.log)。

NETWORK_LINK          链接到源系统的远程数据库的名称。

NOLOGFILE             不写入日志文件 (N)。

PARALLEL              更改当前作业的活动 worker 的数目。

PARFILE               指定参数文件。

QUERY                 用于导出表的子集的谓词子句。

SAMPLE                要导出的数据的百分比;

SCHEMAS               要导出的方案的列表 (登录方案)。

STATUS                在默认值 (0) 将显示可用时的新状态的情况下,

要监视的频率 (以秒计) 作业状态。

TABLES                标识要导出的表的列表 - 只有一个方案。

TABLESPACES           标识要导出的表空间的列表。

TRANSPORT_FULL_CHECK  验证所有表的存储段 (N)。

TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。

VERSION               要导出的对象的版本, 其中有效关键字为:

(COMPATIBLE), LATEST 或任何有效的数据库版本。

下面从一系列实验出发,重点突出数据泵和传统工具的区别。

3 使用数据泵进行数据导出和导入:

讨论使用数据泵进行数据导入和导出,可以从实际需求出发,参照imp/exp的讨论路线

3.1单表导出

需求:把system用户的表student导出,而且只需导出age !=50 的记录。

源和数据库操作系统和oracle版本均一致:

服务器:windows server 2008 R2

Oracle:10.2.0.4

(1)登录数据库,建立directory

oracle[~]$sqlplus system/talent@191.255.255.249/hr

SYSTEM >create or replace directory expdir as 'd:\expdir';

由于数据泵是服务器端工具,执行导入时候,需要指定把转储文件导出到什么目录,这里的directory就是这个作用。在指定目录时,还要注意,服务器端是否已经有这个目录,如果没有则新建。

C:\Users\Administrator>mkdir d:\expdir

(2)查看已经建立的directory:

SYSTEM >select * from dba_directories;OWNER     |DIRECTORY_NAME                |DIRECTORY_PATH----------|------------------------------|--------------------------------------------------SYS       |DATA_PUMP_DIR                 |C:\oracle\product\10.2.0/admin/hr/dpdump/SYS       |ORACLE_OCM_CONFIG_DIR         |C:\oracle\product\10.2.0\db_1/ccr/state

SYS       |EXPDIR                        |d:\expdir

3 rows selected.

这里建立的directory所有者是sys,如果其他用户要使用这个direcory,需要授权,否则无法读写这个目录:

SYSTEM >grant read,write on directory expdir to hr;

(3)使用下列脚本进行单表导出:

@echo off

sqlplus system/talent@localhost/hr @student.sql

文件student.sql:

column time new_val ok

select to_char(sysdate,'yyyy-mm-dd') time from dual;

host expdp "'system/talent@localhost/hr'" dumpfile=stuent_&ok..dmp tables=student% query='where age != 50'  logfile=student_&ok..log

exit

(4)导出日志包含下列内容:

Db.log:

Data Pump default directory object created:

directory object name: DATA_PUMP_DIR

creation date: 21-2月 -2013 10:39

通过日志看到,由于没有指定directory,导出时候使用系统默认的directory:DATA_PUMP_DIR,可以手动设置这个环境变量。如果没有指定导出文件名和日志文件名,导出的dmp文件和日志文件都自动写到了这个目录,dmp文件名名为expdp.dmp,日志文件名是exp.log。最好指定directory,还要注意授权,让导出时使用的用户对这个directory具备读写权限:

column time new_val okselect to_char(sysdate,'yyyy-mm-dd') time from dual;host expdp "'system/talent@localhost/hr'" dumpfile=stuent_&ok..dmp tables=student%  query='where age != 50'   directory=expdir logfile=student_&ok..log

3.2单表数据导入

3.2.1 Content

导入时候,如果这表已经存在,会提示失败。Imp导入时候通过ingore=y选项跳过这个错误,继续插入数据,impdp则通过更灵活的参数contents跳过错误:

Content选项的三个值:

All:表示把元数据和数据一起导入.

data_only:表示只是追加数据

metadata_only:表示只导入表元数据,相当于exp中的rows=n。

C:\Users\Administrator>impdp system/talent dumpfile=STUENT_2013-08-25.DMP directory=expdir  tables=student content=data_only

3.2.2过滤导入

imp导入时,如果要忽略索引,可以通过index=n实现,impdp实现则更加灵活一些

C:\Users\Administrator>impdp system/talent dumpfile=STUENT_2013-08-25.DMP directory=expdir  tables=student content=data_only  EXCLUDE=INDEX

3.2.3导入数据给其他用户

Imp导入时候,使用fromuser/touser选项指定导入的用户,expdp使用remap_schema选项导入数据给其他用户:

C:\Users\Administrator>impdp system/talent dumpfile=STUENT_2013-08-25.DMP directory=expdir  tables=student content=all  remap_schema=system:hr

3.2.4指定表空间

和imp一样,导入时候是数据写入表在源数据库中的表空间,如果目的库不存在对应的表空间时,导入会失败。impdp导入时候可以指定表空间,十分灵活。

C:\Users\Administrator>impdp system/talent dumpfile=STUENT_2013-08-25.DMP directory=expdir  tables=student content=all  remap_schema=system:hr  remap_tablespace=system: hr_SYSTEM_DATA

3.3模式对象导出

3.3.1Estimate评估

模式对象导出时,如果导出的数据较多,可以先用estimate参数评估工作量:

Statistics参数有两个值:blocks(默认)和statistics,两者区别:

expdp "'system/talent@localhost/hr'"  schemas=hr directory=expdir logfile=student_&ok..log  estimate_only=y estimate=statistics

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

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

启动 "SYSTEM"."SYS_EXPORT_SCHEMA_01":  "system/********@localhost/hr" schemas=hr directory=expdir logfile=student_2013-08-25.log estimate_only=y estimate=statistics

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

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

.  预计为 "hr"."TEST11"                              391.6 MB

.  预计为 "hr"."hr_D_LEAKAGEBASE"                   14.77 MB

.  预计为 "hr"."hr_D_PATCHBASE"                     8.520 MB

.  预计为 "hr

.  预计为 "hr"."WF_WORKPROCESS_INS"                      0 KB

.  预计为 "hr"."WF_WORKPROCESS_MSG"                      0 KB

使用 STATISTICS 方法的总估计: 419.6 MB

作业 "SYSTEM"."SYS_EXPORT_SCHEMA_01" 已于 16:58:59 成功完成

expdp "'system/talent@localhost/hr'"  schemas=hr directory=expdir logfile=student_&ok..log  estimate_only=y estimate=blocks

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

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

启动 "SYSTEM"."SYS_EXPORT_SCHEMA_01":  "system/********@localhost/hr" schemas=hr directory=expdir logfile=student_2013-08-25.log estimate_only=y estimate=blocks

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

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

.  预计为 "hr"."TEST11"                              5.363 GB

.  预计为 "hr"."hr_D_LEAKAGEBASE"                      19 MB

.  预计为 "hr"."hr_D_PATCHBASE"                        11 MB

.  预计为 "hr"."hr_RESOURCE"                            5 MB

.  预计为 "hr"."AAS_AUDIT_REC"                           3 MB

.  预计为 "hr"."AAS_POLICY"                              2 MB

.  预计为 "hr"."AAS_RESOURCE_SYSTEM"                     2 MB

.  预计为 "hr"."AAS_USER"                                2 MB

.  预计为 "hr"."RPT_DEF"                                 2 MB

.  预计为 "hr"."AAS_RESOURCE_DOMAIN"                  1024 KB

.  预计为 "hr"."NMS_PORTOFVLAN"                          0 KB

.  预计为 "hr"."NMS_PORTRESOURCE"                        0 KB

.  预计为 "hr"."NMS_SCANDEVICEINFO"                      0 KB

使用 BLOCKS 方法的总估计: 5.466 GB

作业 "SYSTEM"."SYS_EXPORT_SCHEMA_01" 已于 17:02:12 成功完成

3.3.2 过滤导出

使用exp工具进行模式对象导出时,可以根据trigger, INDEXES、GRANDS、TRIGGERS、CONSTRAINTS和STATISTICS进行过滤,expdp可以通过include和exclude参数过滤任意对象。

例如:如果仅仅需要导出函数和序列,可以按照如下方法进行:

C:\Users\Administrator>expdp "'hr/hr@localhost/hr'"  schemas=hr directory=expdir dumpfile=hr2.dmp logfile=hr2.log job_name=hr include=function include=sequence

3.3.3 调整并行度

为了充分利用CPU和I/O资源,导入时候可以调整并行度:

impdp "'system/talent@localhost/hr'"  schemas=hr directory=expdir dumpfile=hr.dmp logfile=hr1.log job_name=hr   parallel=2  exclude=table:"""LIKE 'student%'"""

使用imp导入时,模式对象必须已经存在;使用expdp导入,如果模式不存在,可以自动建立,并且根据源库中的属性自动设置相关属性,例如权限、默认表空间和临时表空间等。

3.3.4 交互操作

在导出时,expdp把传统的exp/imp导出方式转化为了内部的job任务,这样可以手动控制任务,进行暂停、删除与重启等交互操作:

例如:

expdp "'system/talent@localhost/hr'"  schemas=hr directory=expdir logfile=student_&ok..log job_name=hr

使用job_name选项后,数据库会为system模式生成一个名字为hr的表,用于记录导出导入进度,Job完成后自动卸载这个表。

导出过程中可以使用ctrl+c进入交互模式。

Export>

查看帮助

Export> help

下列命令在交互模式下有效。

注: 允许使用缩写

命令               说明

------------------------------------------------------------------------------

ADD_FILE              向转储文件集中添加转储文件。

CONTINUE_CLIENT       返回到记录模式。如果处于空闲状态, 将重新启动作业。

EXIT_CLIENT           退出客户机会话并使作业处于运行状态。

FILESIZE              后续 ADD_FILE 命令的默认文件大小 (字节)。

HELP                  总结交互命令。

KILL_JOB              分离和删除作业。

PARALLEL              更改当前作业的活动 worker 的数目。

PARALLEL=。

START_JOB             启动/恢复当前作业。

STATUS                在默认值 (0) 将显示可用时的新状态的情况下,

要监视的频率 (以秒计) 作业状态。

STATUS[=interval]

STOP_JOB              顺序关闭执行的作业并退出客户机。

STOP_JOB=IMMEDIATE 将立即关闭

数据泵作业。

查看当前状态

Export> status

作业: hr

操作: EXPORT

模式: SCHEMA

状态: EXECUTING

处理的字节: 0

当前并行度: 1

作业错误计数: 0

转储文件: D:\EXPDIR\hr.DMP

写入的字节: 4,096

Worker 1 状态:

状态: EXECUTING

对象方案: hr

对象名: WF_STATE_POINT

对象类型: SCHEMA_EXPORT/TABLE/TABLE

完成的对象数: 173

Worker 并行度: 1

暂停job

Export> stop_job

是否确实要停止此作业 ([Y]/N): yes

停止后就退出了这次任务,可以下次连上来,重新开始:

C:\Users\Administrator>expdp "'system/talent@localhost/hr'"   attach=hr

作业: hr

所有者: SYSTEM

操作: EXPORT

创建者权限: FALSE

GUID: 0F572B49364D482CBE7FF94DBE211ED1

起始时间: 星期日, 25 8月, 2013 17:33:58

模式: SCHEMA

实例: hr

最大并行度: 1

EXPORT 个作业参数:

参数名      参数值:

CLIENT_COMMAND        "system/********@localhost/hr" schemas=hr directory=expdir dumpfile=hr.dmp logfile=hr.log job_name=hr

状态: IDLING

处理的字节: 423,131,416

完成的百分比: 79

当前并行度: 1

作业错误计数: 0

转储文件: d:\expdir\hr.dmp

写入的字节: 424,370,176

Worker 1 状态:

状态: UNDEFINED

Export>

重新开始

Export> start_job

翻屏显示

Export> CONTINUE_CLIENT

使用 BLOCKS 方法的总估计: 5.466 GB

处理对象类型 SCHEMA_EXPORT/USER

处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT

处理对象类型 SCHEMA_EXPORT/ROLE_GRANT

处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE

处理对象类型 SCHEMA_EXPORT/TABLESPACE_QUOTA

处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_SPEC

处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX

oracle 泵备份,Oracle逻辑备份之数据泵(一)相关推荐

  1. oracle逻辑备份和物理备份,oracle数据库物理备份和逻辑备份区别

    oracle数据库物理备份和逻辑备份区别 ORACLE中数据备份分为物理备份和逻辑备份两种.物理备份就是转储ORACLE物理文件(如数据文件.控制文件.归档日志文件等),一旦数据库发生故障,可以利用这 ...

  2. 【DB笔试面试164】在Oracle中,如何彻底停止expdp数据泵进程?

    [DB笔试面试164]在Oracle中,如何彻底停止expdp数据泵进程? 真题1. 如何彻底停止 expdp 进程? 答案:许多同事在使用expdp命令时,不小心按了CTRL+C组合键,然后又输入e ...

  3. 物理服务器备份系统,物理备份和逻辑备份区别

    物理备份和逻辑备份区别 内容精选 换一换 可能这份面试题还不足以包含所有Java问题,但有了它,我相信你一定不会"败"的很惨,有了它,足以应对目前市面上绝大部分的Java面试了,因 ...

  4. mysql物理备份与逻辑备份详解

    mysql物理备份与逻辑备份详解 条件: 本文针对mysql版本为5.7,存储引擎为InnoDB,其他版本未做实验 一.逻辑备份恢复 备份: $ mysqldump -h127.0.0.1 --add ...

  5. MySQL 的物理备份、逻辑备份、增量备份

    物理备份 , 冷备 cp .tar 首先需要两台PC: mysql   121.40.25.207                                     mysql02   47.9 ...

  6. oracle数据泵和rman备份区别,IMP/EXP,数据泵,SQL*Loader ,rman,oracle数据库备份

    数据库的逻辑备份和恢复:exp和imp 1.导库:导出和导入整个数据库 2.导表空间:导出和导入表空间 3.导表用户:导出和导入用户中所有对象 4.导表:导出和导入表或表分区 (1)commit=y ...

  7. 数据备份(逻辑备份和数据泵备份)

    oracle11g数据库导入导出: ①:传统方式--exp(导出)和(imp)导入: ②:数据泵方式--expdp导出和(impdp)导入; ③:第三方工具--PL/sql Develpoer; 一. ...

  8. oracle逻辑备份和物理备份,Oracle备份与恢复介绍(物理备份与逻辑备份)

    3.逻辑备份之EXP/IMP: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使 ...

  9. expdp oracle 并行_oracle 11g逻辑备份介绍-expdp/impdp

    Data Pump(数据泵) 是从oracle10g 引入的全新的,用于快速迁移数据的方式.Data Pump与exp/imp最大的区别是,Data Pump是一个位于服务器端的工具,通过Data P ...

  10. Oracle备份恢复之逻辑备份

    exp 交互模式:导出scott用户下的emp表. [oracle@localhost ~]$ exp Export: Release 10.2.0.1.0 - Production on Thu N ...

最新文章

  1. java版电子商务spring cloud分布式微服务b2b2c社交电商-spring cloud gateway之filter篇
  2. [js]设计模式小结对原型的修改
  3. 音视频技术开发周刊 86期
  4. 记错严格管理时间---记一次老师讲的学习方法
  5. BG.Hive - part3
  6. 把prn文件输出到网络打印机
  7. 中小企业信息化规划案例--初级篇
  8. 各场景下NetApp的数据备份推荐(Veeam+群晖NAS)
  9. 计算机科学系班服主题,高校流行班服“设计风”
  10. 【Python训练营】Python每日一练----第28天:鲁卡斯队列(round函数用法)
  11. 融云 CEO 董晗:国产化进程加速,助推政企数智办公平台深化发展
  12. 2022考研日志(已完结)
  13. ETL DataStage实现
  14. java与C++中文字符的问题
  15. 门这边、门那边的2个世界...
  16. 基于Flink的电影数据实时统计平台(一):项目展示
  17. 【选址优化】基于粒子群算法求解配电网抢修选址优化问题含Matlab源码
  18. 面试集锦-------LRU,LFU手撕算法
  19. 《密码学系列》—信息安全威胁
  20. 基于PHP实现一个简单的在线聊天功能

热门文章

  1. javascript中replace()
  2. java DefaultMutableTreeNode 树形结构 目录 1. Tree的概念 1 1.1. treeNode接口,mutabletreenode接口 1 1.2. 10-4:以T
  3. Atitit 提升水平 把代码写的有技术含量 目录 1. 提高可读性(重要) 2 1.1. 异常模式代替返回值 2 1.2. Dsl 2 1.3. 流畅接口方法链 2 1.4. 层次结构抽象 2 1
  4. Atitit 朋友圈 微博 之道 朋友圈的dos and donts
  5. Atitit 贝叶斯算法的原理以及垃圾邮件分类的原理
  6. paip.网站接入QQ登录总结
  7. paip.提升安全性----我们需要多长的密码
  8. paip.提升用户体验之全角半角
  9. 跨语言调用模块.TXT
  10. 裘慧明:跟世界上最聪明的人博弈