exp.imp与expdp,impdp在用法上有什么不同?

delphisanding1 2011-09-08 08:39:47
1.语法有没有不同?
2.导出/导入数据是否只是速度上有区别?其他都一样?
...全文
651 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_cyx 2012-09-13
  • 打赏
  • 举报
回复
一楼的意思是 两种方法都可以在服务端客户端执行吧
IMPDP导出的文件保存在服务端 而IMP导出的文件在客户端

是这样吗?
Dave 2011-09-14
  • 打赏
  • 举报
回复

exp/imp 与 expdp/impdp 对比 及使用中的一些优化事项
http://blog.csdn.net/tianlesoftware/article/details/6093973
guye1986 2011-09-14
  • 打赏
  • 举报
回复
expdp 我们常说的数据泵,我觉得它更像是个专用通道,oracle10g出来的特性。和exp相比他有着自身的优点:

1、直接用api来加载和卸载 数据
2、性能要比exp/imp快的多
3、导出的控制更强,如只导出函数,存储过程
4、监控信息更加丰富

比方下面的例子:
Sqlplus>
conn system/manager
create directory dpdata1 as 'c:\bk';
grant read, write on directory dpdata1 to scott;
Dos>expdp help=y
expdp scott/tiger tables=t1 directory=DPDATA1
dumpfile=pump_t1.dmp job_name=CASES_EXPORT
delphisanding1 2011-09-13
  • 打赏
  • 举报
回复
好的
多谢楼上各位。
inthirties 2011-09-10
  • 打赏
  • 举报
回复
2.导出/导入数据是否只是速度上有区别?其他都一样?
不一样,机制和原理不同,速度和用法只是体现。

可以g一下他们的基础知识。做个大致了解先
inthirties 2011-09-10
  • 打赏
  • 举报
回复
学会使用帮助

imp/exp/impdp/expdp help=y
aptweasel 2011-09-10
  • 打赏
  • 举报
回复
expdp/impdp和exp/imp,可以在任意有ORACLE客户端的机器上执行,区别如下
exp/imp是真正的客户端程序,导出与导出都是操作客户端本地文件,相对比较慢
而expdp/impdp是运行在客户端,但是要求,导入导出的文件,必须是服务器上的,并且路径限制在ORACLE服务器中声明的DIRECTOR下,所以速度更快一些。两者参数基本上一致,但expdp/impdp更丰富一些。
delphisanding1 2011-09-09
  • 打赏
  • 举报
回复
expdp/impdp不是只能在服务器端运行吗?

1楼的帖子上怎么说:服务器端和客户端都可以执行?
delphisanding1 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 viszl 的回复:]
http://blog.csdn.net/viszl/article/details/6732066
[/Quote]

多谢。
delphisanding1 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xl_smlie 的回复:]
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/pass……
[/Quote]

多谢。
Alessandro_ 2011-09-08
  • 打赏
  • 举报
回复
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这个是不支持的。处理起来非常麻烦。

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧