Oracle详解:exp/imp和expdp/impdp的区别

结论:

在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP。

1、exp和expdp最明显的区别就是导出速度的不同。expdp导出是并行导出。(如果把exp导出比喻为一个工人在挖土,那么expdp就相当于一个挖掘机在挖土)

2、exp和expdp导出不止是速度的不同,同时导出机制也完全不同,所有用expdp导出的dmp文件只能用impdp的方式导入。

3、EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。

4、EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

5、命令使用的区别,expdp命令新增了目录对象directory,file替换为dumpfile,log替换成logfile,还添加了一个reuser_dumpfile=ture参数

其中:

数据泵取只能在服务器端运行,客户端只能用来连接服务器启动导入导出操作

即:从192.168.10.201执行248导出命令后,导出的数据存储在248上。也就是201只是调用了248的expdp命令而已;

一、exp/imp详解

在cmd窗口执行,命令格式:

exp|imp 用户名/密码@IP地址:端口/服务名 file='路径/文件名.dmp' log='路径/文件名.log' full=y|tables=(表一,表二)|owner=(用户1,用户2)

注意:full/tables/owner:全导、按表导出、按用户导。只能一次使用其中一种

例子:

如果是单实例数据库本机上执行,且用的是1521端口,可以省略@IP和端口和实例名

exp/imp  lkq/kaikai tables=scot.emp file=‘C:\kk\kktable.dmp’ log=‘C:\kk\kktable.log’ 

在这里插入图片描述

告警是因为exp工具的环境变量和数据库里的环境变量字符集不一样导致的,解决如下:

出现EXP-00091之后,我们采用的解决方案如下:
1、查看database中的NLS_CHARACTERSET的值
a、select * from nls_database_parameters t where t.parameter=‘NLS_CHARACTERSET’;
b、select * from v$nls_parameters where parameter=‘NLS_CHARACTERSET’;
PARAMETER VALUE


NLS_CHARACTERSET ZHS16GBK
2、根据第一步查出来的NLS_CHARACTERSET(即ZHS16GBK)来设定
windows环境:cmd > set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
linux环境:Shell > export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

二、数据泵expdp/impdp详解

数据泵expdp/impdp

可以直接把上面exp命令换成expdp,imp换成impdp,命令会自动转换成数据泵模式!而且无报错!

自动新增目录对象,file转换为dumpfile,log换成logfile,还添加了一个reuser_dumpfile=ture参数

在这里插入图片描述

当然,上面只是纯粹方便看出改动的地方

整理一下expdp导出流程:

1、创建dmp导出目录

create directory 目录名 as '目录路径'
--例:create directory expdp_dmp as 'D:/expdp_dmp'

2、查看当前创建的所有dmp导出目录 (验证看是否创建成功)

select * from dba_directories
--例:select * from dba_directories

3、为创建的目录赋权限

grant read,write on directory 目录名 to 需要赋值的用户名
--例:grant read,write on directory expdp_dmp to aaa;

4、导出

expdp 用户名/密码@数据库实例名 directory=导出目录 dumpfile=导出的文件名.dmp logfile=导出的日志名.log
--例:expdp aaa/aaaa@orcl directory=expdp_dmp dumpfile=aaa20170417.dmp logfile=aaa20170417.log 
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐