阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

exp/imp与expdp/impdp区别

202次阅读
没有评论

共计 2780 个字符,预计需要花费 7 分钟才能阅读完成。

在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用 exp 的时候往往是需要好几个小时,耗费大量时间。Oracle10g 以后可以用 expdp 来导出数据库花费的时间要远小于 exp 花费的时间,而且文件也要小很多。

1. 使用 expdp 要先在数据库中创建 directory, 并给相应的用户 read,write 权限.

SQL>create dexp 和 empdp 的区别 irectory dmpdir as‘/u01/dmdir’;

SQL>grant read,write on directory to test;

2. 常用导出方法

$expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=test

$expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY=dmpdir TABLES=(tmp_test:p1,tmp_test:p2) JOB_NAME=tmp_dump LOGFILE=tmp_dump.log

$expdp scott/tiger DUMPFILE=full.dmp DIRECTORY=dmpdir FULL=Y JOB_NAME=full

$expdp scott/timer DUMPFILE=tmp_200703.dmp DIRECTORY=dmpdir TABLES=tmp QUERY=\”where to_char\(create_time,\’yyyy-mm-dd\’\)\<\’2007-04\’\”

常用一些参数说明:

SCOTT/TIGER: 用户 / 密码(*)

DUMPFILE: 导出后的文件名(*)

DIRECTORY: 导出文件存放位置(位于服务器端)(*)

CONTENT: 导出文件中包含的内容(默认为:ALL, 可选 DATA_ONLY/METADATA_ONLY)

FILESIZE: 指定导出文件大小(单位为 bytes).

JOB_NAME: 此次导出进程使用的名称, 方便跟踪查询(可选)

LOGFILE: 日志文件名(默认为:export.log)

INCLUDE: 导出时包含指定的类型

(例:INCLUDE=TABLE_DATA,

INCLUDE=TABLE:”LIKE ‘TAB%'”

INCLUDE=TABLE:”NOT LIKE‘TAB%’”…)

EXCLUDE: 导出时排除的数据类型(例:EXCLUDE=TABLE:EMP)

FULL: 全库导出时使用(同 EXP 的 FULL, 默认为 N)

SCHEMA: 导出某一个 SCHEMA 下的所有数据

TABLES: 按表导出(这里的方法和 EXP 一样)

TABLESPACE: 指定一个表空间导出.

QUERY: 按表导出时, 使用条件语句限定导出范围(同 exp 中的 QUERY)

TRANSPORT_FULL_CHECK:

TRANSPORT_TABLESPACES:

FLASHBACK_SCN:

FLASHBACK_TIME:

PARALLEL: 并行操作

PARFILE:

NETWORK_LINK:

当 Data Pump Export (DPE) 运行时,按 Control-C;它将阻止消息在屏幕上显示,但不停止导出进程本身。相反,它将显示 DPE 提示符(如下所示)。进程现在被认为处于“交互式”模式:

Export>

这种方法允许在这个 DPE 作业上输入命令查询及控制当前作业。

3. 您可以通过 PARALLEL 参数为导出使用一个以上的线程来显著地加速作业。每个线程创建一个单独的转储文件,因此参数 dumpfile 应当拥有和并行度一样多的项目。您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:

expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export

注意:dumpfile 参数拥有一个通配符 %U,它指示文件将按需要创建,格式将为 expCASES_nn.dmp,其中 nn 从 01 开始,然后按需要向上增加。

在并行模式下,状态屏幕将显示四个工作进程。(在默认模式下,只有一个进程是可见的)所有的工作进程同步取出数据,并在状态屏幕上显示它们的进度。

分离访问数据文件和转储目录文件系统的输入 / 输出通道是很重要的。否则,与维护 Data Pump 作业相关的开销可能超过并行线程的效益,并因此而降低性能。并行方式只有在表的数量多于并行值并且表很大时才是有效的。

4.exp/imp 与 expdp/impdp 区别:

(1) 把用户 usera 的对象导到用户 userb, 用法区别在于 fromuser=usera touser=userb ,remap_schema=’usera’:’usera’。例如:imp system/passwd fromuser=usera touser=userb file=/oracle/exp.dmp log=/oracle/exp.log;

impdp system/passwd directory=expdp dumpfile=expdp.dmp remap_schema=’usera’:’userb’logfile=/oracle/exp.log;

(2) 更换表空间,用 exp/imp 的时候,要想更改表所在的表空间,需要手工去处理一下,

如 alter table xxx move tablespace_new 之类的操作。

用 impdp 只要用 remap_tablespace=’tabspace_old’:’tablespace_new’

(3) 当指定一些表的时候,使用 exp/imp 时,tables 的用法是 tables=(‘table1′,’table2′,’table3′)。

expdp/impdp 的用法是 tables=’table1′,’table2′,’table3′

(4) 是否要导出数据行

exp(ROWS=Y 导出数据行,ROWS=N 不导出数据行)

expdp content(ALL: 对象+导出数据行,DATA_ONLY:只导出对象,METADATA_ONLY:只导出数据的记录)

(5) expdp 是 [10g] 的新特性而且只能在服务器执行。而 exp/imp 是通用的。

(6) oracle11g 中有个新特性,当表无数据时,不分配 segment,以节省空间, 所以 exp 导不出空表。解决的办法是用 expdp,当然也可以设置 deferred_segment_creation 参数 或者 insert 一行,再 rollback,但是这样很麻烦。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/133899.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2780字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中