前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle的expdp和impdp的使用方法

Oracle的expdp和impdp的使用方法

原创
作者头像
迟恩
修改2020-09-07 10:36:12
3.3K0
修改2020-09-07 10:36:12
举报
文章被收录于专栏:陈言懒调陈言懒调

expdp/impdp和exp/imp的区别

  • exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
  • expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
  • imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
  • 对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。

expdp 导出步骤

1. 创建逻辑目录,在服务器上创建真实的目录用于存放数据文件

2. 使用管理员用户system登录sqlplus

3. 创建逻辑目录,此步不会在OS上创建真正的目录

代码语言:sql
复制
create directory data_dir as '/home/oracle/datadir'

4. 检查刚才创建的管理员目录是否存在

代码语言:sql
复制
select * from dba_directories where directory_name = 'DATA_DIR';

5. 用system管理员给你的指定用户(要导出的表所属用户)赋予在该目录的操作权限。

代码语言:sql
复制
grant read,write on directory data_dir to xxx;

6. 用户expdp导出数据,共有以下六种方案

  • 第一种,导出全量数据
代码语言:sql
复制
expdp user/pwd@orcl file=expdp.dmp directory=data_dir full=y log=expdp.log;
  • 第二种,schemas按用户导出
代码语言:sql
复制
expdp user/pwd@orcl 
schemas=user file=expdp.dmp directory=data_dir log=expdp.log
  • 第三种,按表空间导出
代码语言:sql
复制
expdp user/pwd@orcl 
tablespace=tbs1,tbs2 file=expdp.dmp directory=data_dir log=expdp.log
  • 第四种,导出指定表
代码语言:sql
复制
expdp user/pwd@orcl 
directory=data_dir tables=tb1,tb2 file=expdp.dmp log=expdp.log
  • 第五种,导出指定表的指定分区(限分区表使用)
代码语言:sql
复制
expdp user/pwd@orcl directory=data_dir tables=(tb_pt:par_1,tb_pt:par_2) file=expdp.dmp  log=expdp.log
  • 第六种,按查询条件导出
代码语言:sql
复制
expdp user/pwd@orcl directory=data_dir tables=tb1='where rowid='xxx'' file=expdp.dmp log=expdp.log

impdp 导入步骤

用impdp导入对应上述expdp的六种方式:

  • 第一种,全量导入数据库
代码语言:sql
复制
impdp user/pwd directory=data_dir file=impdp.dmp full=y log=impdp.log
  • 第二种,同名用户导入,从用户A导入到用户A
代码语言:sql
复制
impdp A/pwd directory=data_dir schemas=A file=impdp.dmp log=impdp.log
  • 第三种,1. 从A用户中把表table1和table2导入到B用户中
代码语言:sql
复制
impdp B/pwd directory=data_dir tables=A.table1,A.table2 remap_schema=A:B file=impdp.dmp  log=impdp.log

2. 将表空间TBS01、TBS02、TBS03导入到表空间A_TBS,将用户B的数据导入到A,并生成新的oid防止冲突

代码语言:sql
复制
impdp A/pwd directory=data_dir remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=B:A FULL=Y transform=oid:n file=impdp.dmp logfile=impdp.log
  • 第四种,导入表空间
代码语言:sql
复制
impdp user/pwd directory=data_dir tablespaces=tbs1 file=impdp.dmp file=impdp.log
  • 第五种,导入表的某个分区
代码语言:sql
复制
impdp user/pwd directory=data_dir tables=(tb_pt:par_1,tb_pt:par_2) file=impdp.dmp log=impdp.log
  • 第六种,追加数据
代码语言:sql
复制
impdp user/pwd directory=data_dir file=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log

--table_exists_action:导入对象已存在时执行的操作。有效关键字:SKIP,APPEND,REPLACE和TRUNCATE

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • expdp/impdp和exp/imp的区别
  • expdp 导出步骤
  • impdp 导入步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档