数据泵的导入导出

数据泵的导入导出:
这里我使用的是impdp/expdp。后面我会总结这两种与exp/imp的区别。
一、区别
1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、expdp和impdp是服务端的工具程序,他们只能在Oracle服务端使用,不能在客户端使用。
3、imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
4、对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。
5、expdp 的速度比exp的速度要快。
二、操作过程
1、在虚拟机上创建真实的目录;(注意:第三步创建逻辑目录的命令不会在OS上创建真正的目录,所以要先在服务器上创建真实的目录)。并将你的文件xxx.dmp(以.DMP结尾的) 用xftp之类文件上传到虚拟机。

例如:我上传到

2、登录oracle,验证密码,并以管理员权限登录oracle
2.1切换到oracle 并输入密码 su – oracle
2.2启动监听者 lsnrctl start
2.3以管理员权限登录 cd /u01/app/oracle/oradata/orcl
sqlplus / as sysdba
2.4启动oracle startup
3、创建表用户、赋予权限
–删除临时表空间
drop tablespace balance _temp including contents and datafiles;
–删除表空间
drop tablespace balance _data including contents and datafiles;
–创建临时表空间
create temporary tablespace balance_temp tempfile ‘/u01/app/oracle/oradata/orcl/balance_temp.dbf’ size 200M;
–创建数据表空间
create tablespace balance datafile ‘/u01/app/oracle/oradata/orcl/balance.dbf’ size 200M autoextend on next 200M maxsize 10G;
–创建用户并指定表空间
create user zjkbalance identified by zjkbalance default tablespace balance ;
–赋予读写权限给ast
grant read,write on directory dump_dir to zjkbalance;
–导入
impdp zjkbalance/zjkbalance@orcl directory=dump_dir dumpfile=BALANCE20181124.DMP full=y;

	--备注:如果使用别人的导出dmp文件出现了问题 (ZGY是给我dmp文件的人的命名的用户 balance是我自己创建的用户,所以导入别人的文件,最好和别人的用户名和密码保持一致)

–****—用户转换
impdp ZG/ast@orcl directory=DUMP_DIR dumpfile=ZGY20181124.DMP table_exists_action=replace remap_schema=ZGY:balance;

4、导入命令总结
(1)用expdp导出dmp,有五种导出方式:
    第一种:“full=y”,全量导出数据库;
expdp user/passwd@orcl dumpfile=expdp.dmp directory=data_dir full=y logfile=expdp.log;
    第二种:schemas按用户导出;
expdp user/passwd@orcl schemas=user dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
    第三种:按表空间导出;
expdp zjk_uat/zjk_uat@orcl tablespaces=ZGDATA dumpfile=expdp.dmp directory=data_dmp logfile=expdp.log;
    第四种:导出表;
expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
    第五种:按查询条件导;
expdp user/passwd@orcl tables=table1=‘where number=1234’ dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;

五、impdp导入步骤
(1)如果不是同一台服务器,需要先将上面的dmp文件下载到目标服务器上,具体命令参照:http://www.cnblogs.com/promise-x/p/7452972.html
(2)参照“expdp导出步骤”里的前三步,建立逻辑目录;
(3)用impdp命令导入,对应五种方式:
    第一种:“full=y”,全量导入数据库;
impdp user/passwd directory=data_dir dumpfile=expdp.dmp full=y;
    第二种:同名用户导入,从用户A导入到用户A;
impdp A/passwd schemas=A directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
    第三种:①从A用户中把表table1和table2导入到B用户中;
impdp B/passwdtables=A.table1,A.table2 remap_schema=A:B directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
        ②将表空间TBS01、TBS02、TBS03导入到表空间A_TBS,将用户B的数据导入到A,并生成新的oid防止冲突;
impdp A/passwdremap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=B:A FULL=Y transform=oid:n
directory=data_dir dumpfile=expdp.dmp logfile=impdp.log
    第四种:导入表空间;
impdp sys/passwd tablespaces=tbs1 directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;
    第五种:追加数据;
impdp sys/passwd directory=data_dir dumpfile=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log;
–table_exists_action:导入对象已存在时执行的操作。有效关键字:SKIP,APPEND,REPLACE和TRUNCATE

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值