oracle 通过expdp/impdp和exp/imp导入导出

一、expdp/impdp和exp/imp的区别
1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
3、imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
 

二、exp/imp导入导出方法
exp导入
    1.导出整个数据库通用命令:
    exp 数据库用户名/数据库密码@数据库别名 file=E:\目录\文件名.dmp
    例如:exp user/passwd@orcl  file=d:\export.dmp
    2.导出部分表通用命令
    exp 数据库用户名/数据库密码@数据库别名 GRANTS=Y TABES=(要导出的表1, 要导出的表2,...) file=E:\目录\文件名.dmp
    例如:exp user/passwd@orcl grants=y tables=(table1,table2) file=d:\table.dmp

imp导入
    imp 导入库用户名/导入库密码@导入库别名 file=E:\目录\文件名.dmp  fromuser=dmp文件的导出库 touser=dmp文件的导入库导入库
    例如:imp user/passwd@orcl file=d:\table.dmp fromuser=导出用户名 touser=导入用户名

imp system/123456@orclbak file=d:\iom.dmp fromuser=ogg touser=test  

三、expdp/impdp的导入导出
3.1 expdp导出步骤
创建逻辑目录:
    在服务器上创建真实的目录

   -- 用sys管理员登录sqlplus;
    create directory dump_dir as 'd:\test\data';  --创建逻辑目录 不会在OS上创建真正的目录,所以要先在服务器上创建真实的目录
    select * from dba_directories; --查看管理员目录,检查是否存在
    grant read,write on directory dump_dir to user; --用sys管理员给你的指定用户赋予在该目录的操作权限。

3.2 用expdp导出dmp,有五种导出方式

--全量导出数据库(full=y)
expdp user/passwd@orcl dumpfile=expdp.dmp directory=dump_dir full=y logfile=expdp.log;

--按用户导出(schemas=user)
expdp user/passwd@orcl schemas=user dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

--按表空间导出(tablespace=tbs1)
expdp sys/passwd@orcl tablespace=tbs1 dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

--导出表(tables=table1,table2)
expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

--按查询条件导出(tables=table1='where 条件')
expdp user/passwd@orcl tables=table1='where 条件' dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;


3.3 impdp导入步骤
    如果不是同一台服务器,需要先将上面的dmp文件下载到目标服务器上,参照"expdp导出步骤",建立逻辑目录;
导入实例:

impdp tms/tms123@orcl remap_schema=zbtms:tms remap_tablespace=zbtms:tms directory=dump_dir dumpfile=ZBTMS2021031701.DMP
/*
说明:
remap_schema 当导出导入用户不一致时,zbtms为导出用户,tms 为导入用户
remap_tablespace 当导出导入表空间不一致时,zbtms为导出表空间,tms 为导入表空间
directory=dump_dir 指定逻辑目录
dumpfile=ZBTMS2021031701.DMP 需要导入的文件,不能携带路径,需放在指定逻辑目录下
*/

用impdp命令导入,对应导出的五种方式

--全量导入数据库(full=y)
impdp user/passwd@orcl directory=dump_dir dumpfile=expdp.dmp full=y;
    
--按用户导入
impdp user/passwd@orcl schemas=user directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --用户同名 导入导出用户名相同
--remap_schema参数相当于imp工具中的fromuser和touser参数,可以实现将一个用户的数据导入到另一个用户中 
impdp user/passwd@orcl remap_schema=user1:user2 directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --用户不同 user1导出用户名 user2导入用户名

--导入表空间;
impdp sys/passwd@orcl tablespaces=tbs1 directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --表空间名称相同
impdp sys/passwd@orcl remap_tablespace=tbs1:tbs2 directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --表空间名称不同 tbs1导出表空间名 tbs2导入表空间名
 
--导入表
--从A用户中把表table1和table2导入到B用户中;
impdp user/passwd@orcl tables=A.table1,A.table2 remap_schema=A:B directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log;
        
--将表空间TBS01、TBS02、TBS03导入到表空间A_TBS,将用户A的数据导入到B,并生成新的oid防止冲突;
impdp user/passwd@orcl remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=A:B FULL=Y transform=oid:n directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log

--追加数据
--table_exists_action:导入对象已存在时执行的操作。有效关键字:SKIP,APPEND,REPLACE和TRUNCATE
impdp user/passwd@orcl directory=dump_dir dumpfile=expdp.dmp schemas=user table_exists_action=replace logfile=impdp.log; 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值