EXP常规模式、EXP直接路径模式和EXPDP三种方式导出的性能对比
1.首先是EXP的常规路径导出:
exp zhejiang/zhejiang file=/data1/zj_regular.dmp buffer=20480000
常规EXP导出方式执行了1小时24分钟。
2.直接路径导出方式:
exp zhejiang/zhejiang file=/data1/zj_direct.dmp buffer=20480000
recordlength=65535 direct=y
直接路径导入用时18分钟,比常规路径导出速度有一个明显的提高。
3.数据泵的导出速度。
expdp zhejiang/zhejiang dumpfile=zj_datapump.dp directory=d_test schemas=zhejiang
数据泵的导出时间仅用了14分钟,比直接路径导入方式还快了20%多。而且观察三个导出文件的大小可以发现,导出速度越快对应的文件也越小,其中数据泵的导出方式得到的文件要比EXP方式小将近1.5G。
IMP和IMPDP导入性能对比
1.IMP的导入速度:
imp zhejiang/zhejiang file=/data1/zj_regular.dmp full=y buffer=20480000 log=/data1/zj_regular.log
IMP导入花费了3小时17分钟,
2.IMPdp的导入速度:
impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log
数据泵的导入操作居然花了3个小时8分钟的时间,和IMP的导入速度十分接近,看来并非所有情况下都像Oracle描述的那样,数据泵的导入比普通导入效率有大幅度的提高。
上面一篇文章的测试中发现IMPDP的导入速度和IMP导入速度相差无几。而Oracle在介绍数据泵的时候,提到IMPDP的导入速度最高是IMP的10倍。不过好在IMPDP还是可以优化调整的,那就是通过设置PARALLEL来提高IMPDP的并行度。
首先还是看一下CPU的数量:
SQL> show parameter cpu
由于数据库服务器的CPU个数为2,下面尝试设置PARALLEL为2来进行导入
impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log parallel=2
采用并行度为2的导入方式,发现速度果然提高了很多。并行度为1的导入速度是3小时8分钟,而现在用了不到2个半小时。
由于并行度设置不应该超过CPU数的2倍,因此尝试平行度3和4的导入,导入时间和并行度2十分接近。看来已经无法再使用通过提高并行度的方法来提高性能了。
1.先看直接导出的性能:
$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang.dp
整个导出操作大概用了14分半,
2.尝试使用并行度2进行导出,这时仍然设置一个导出的数据文件:
$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang_p2_1file.dp parallel=2
整个导入过程不到14分钟,不过这个性能的提升实在不是很明显。不过这是有原因的,由于设置了并行度,两个进程在同时执行导出操作,但是二者要将导出的数据写入同一个数据文件中,因此必然会导致资源的争用
3.仍然使用并行度2,但是同时设置两个数据文件再次检查导出性能:
$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang_p2_2file1.dp,zhejiang_p2_2file2.dp parallel=2
这次导出仅仅用了10分半,导出的效率大大的提高。
4.测试一下并行度4,分别导出到4个数据文件中:
用了9分钟整导出完成,设置成并行度4仍然可以获得一定的性能提升,但是并不明显了,这主要是由于整个性能的瓶颈已经不是单个进程的处理能力,多半性能的瓶颈已经变成了磁盘IO瓶颈,此时单单靠增加并行度已经无法明显提升性能了。
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:只导出数据的记录)
A: exp/imp的使用 (服务器端和客户端都可以执行。并且备份文件可以在客户端产生。)
exp user/password@servicename file=dump.dmp
imp user/password@servicename fromuser=fuser touser=tuser file=dump.dmp
2: expdp/impdp的使用 (服务器端和客户端都可以执行。
备份文件只能存在服务器里面
。)
I:在使用expdp导出时在Oracle需要定义目录变量,在导出的时候需要制定这个变量。如果可以,你可以为每个用户都建立一个单独的备份目录。
SQL>create directory dmpdir_user1 as '/home/oracle/backup';
SQL>grant read,write on directory dmpdir_user1 to user1;
对了,操作系统内必须创建这个目录。在SQL命令行下,并不会产生这个目录的。
[oracle@kook ~]$ mkdir backup
如果你没有制定这个目录的话,默认exp导出存放的目录是$HOME/rdbms/log里面。至少我的是这样。很奇怪,为什么在这里。
II:执行导出导入命令
expdp user1/password@servicename schemas=user1 directory=dmpdir_user1 dumpfile=user1.dmp
impdp
user2/password@servicename directory=dmpdir_user1 dumpfile=user1.dmp
remap_schema=user1:user2 remap_tablespace=user1ts:user2ts
使用expdp/impdp最大的好处可以让我转换表空间。而exp/imp这个是不支持的。处理起来非常麻烦。
分享到:
相关推荐
在 Oracle 10g 及其以上版本中,expdp 和 impdp 命令取代了传统的 exp 和 imp 命令,提供了更多的功能和选项。expdp 命令可以将数据导出到文件中,impdp 命令可以将数据从文件中导入到数据库中。 使用 imp/exp 命令...
3. imp 只适用于 exp 导出的文件,不适用于 expdp 导出文件;impdp 只适用于 expdp 导出的文件,不适用于 exp 导出文件。 4. data pump 导出导入所得到的文件跟传统的 import/export 应用程序导出导入的文件不兼容。...
ORACLE EXPDP/IMPDP 是 Oracle 数据库中用于数据泵导出导入的工具,分别对应 EXP 和 IMP 工具。EXPDP/IMPDP 的出现使得 DBA 或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个 Oracle 数据库中。 ...
### Oracle 数据库备份工具 exp/imp 与 expdp/impdp 的对比及优化事项 #### 一、引言 在Oracle数据库管理中,备份与恢复是确保数据安全的关键环节之一。传统的exp/imp工具和现代的expdp/impdp工具分别代表了不同的...
- **Expdp/Impdp** 是数据泵(Data Pump)工具,是Exp/Imp的升级版,只能在数据库服务器上运行,提供了更高级的功能,如更快的导出导入速度,更多的参数选项,以及更灵活的数据管理。 2. **逻辑备份的优势与应用场景...
相比传统的exp/imp工具,expdp/impdp提供了更高的性能和灵活性,支持数据过滤、网络压缩、并行处理等特性,大大减少了备份和恢复的时间。 **注意事项** 1. 在使用expdp/impdp时,确保拥有足够的磁盘空间来存储导出...
oracle 数据迁移可以使用传统的 exp/imp 工具,也可以使用数据泵 expdp/impdp 工具。 exp/imp 工具是 oracle 数据迁移的传统方法,用于将数据库中的对象和数据导出到一个二进制文件中,然后将该文件导入到目标...
Oracle数据库备份和恢复...本手册提供了Oracle数据库备份和恢复的详细指南,涵盖了环境变量设置、数据备份、数据恢复、EXP/IMP与EXPDP/IMPDP比较等方面的知识点,旨在帮助Oracle数据库管理员更好地管理和维护数据库。
- Exp 和 Imp 工具在 10g 之前使用广泛,但自 10g 开始,Oracle 同时保留了这些工具,并引入了数据泵工具 Expdp 和 Impdp。 - **工具使用限制**: - Exp 和 Imp 可以在客户端和服务端使用。 - Expdp 和 Impdp 仅...
- 在较新的Oracle版本中,如12c及以上,Oracle提供了Data Pump(expdp/impdp)工具,其性能优于传统的IMP/EXP,支持更大的数据量和更复杂的导出导入需求。 总结,Oracle 11g的IMP和EXP工具在数据管理和迁移中起着...
以上介绍了Oracle 11g与Oracle 10g之间数据迁移的相关知识点,包括IMP/EXP和IMPDP/EXPDP工具的特性和使用方法,以及具体的步骤示例。通过这些工具和方法,我们可以高效地进行数据库数据的迁移工作。
如果不一致,可以使用RMAN、`impdp/expdp`或`imp/exp`工具。 5. 更新Excel数据到远程数据库,可以通过PL/SQL Developer的复制和粘贴功能实现,适合小批量数据。对于大批量数据,建议使用`dblink`配合脚本或`impdp`...
### exp/imp2 导入导出知识点详解 #### 一、概述 ...综上所述,`exp/imp` 和 `expdp/impdp` 是 Oracle 数据库中非常重要的数据导入导出工具,掌握其使用方法和相关技巧对于数据库管理员来说是非常必要的。
Oracle Instant Client通常不包含`exp`和`imp`,但可以使用`expdp`和`impdp`作为Data Pump的替代。这两个命令的工作方式类似,只是使用了新的语法和选项。例如,`expdp`用于导出数据,而`impdp`用于导入数据。 5. ...
同时,对于大型数据库,更推荐使用 RMAN(Recovery Manager)或 Data Pump(expdp/impdp)工具,因为它们提供了更高的性能和更多的高级功能。但EXP/IMP工具因其简单易用性,在小型或特定场景下仍然非常实用。
与传统的 EXP 和 IMP 工具相比,数据泵提供了更高级的功能,包括更高的性能、更大的数据文件支持以及更多的数据过滤选项等。 #### 二、EXPDP 的基本概念与使用方法 ##### 2.1 目录对象 (DIRECTORY) 使用 EXPDP ...
- EXP 导出文件只能用 IMP 导入,而 EXPDP 文件只能用 IMPDP 导入,两者之间不兼容。 - 通过指定参数,可以对导出和导入过程进行精确控制,例如选择特定的表、排除某些表或只导入部分数据。 数据泵导出有四种方式:...
它比传统的`exp`和`imp`工具具有更高的性能,并且支持更大的数据量。数据泵主要通过Oracle服务器端的API来实现数据的快速导出和导入。 ### expdp(Export Data Pump) `expdp`命令用于将数据库的数据导出到一个或...
Oracle 11G 的导入导出工具 exp 和 imp 是数据库管理员进行数据迁移、备份和恢复的重要工具。然而,在11G R2 版本中,由于一个新特性,空表在没有数据的情况下不会分配 segment,导致无法通过 exp 导出。这个问题...