oracle数据泵EXPDP和IMPDP使用说明

2024-05-06 00:38

本文主要是介绍oracle数据泵EXPDP和IMPDP使用说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!




oracle数据泵EXPDP和IMPDP使用说明

首先标题不知道是否正确,oracle数据泵好像包含了好多概念,目前只是零星接触了一下EXPDP和IMPDP工具。据百度而来的资料,oracle10g之后推出的这个工具在性能上要比此前的EXP和IMP要高,而且支持从高版本向低版本导入和导出,所以在需要学习数据导入导出的时候,直接考虑EXPDP和IMPDP了。在此,记录一下这两个工具的使用方法。

一、准备:创建逻辑目录,并赋予oracle对其的读写权限

1.使用EXPDP工具时,其转存储文件只能被存放在directory对象对应的OS目录中,而不能直接指定转存储文件所在的OS目录。在此,先在操作系统创建目录d:\dump
2.以system等管理员身份登录sqlplus,授予用户test对目录对象dmp_dir的读写权限。
create directory dmp_dir as ‘d:\dump’
grant  read, write on directory dmp_dir to test

二、导出数据
1.全库导出模式
expdp test/test@orcl directory=dmp_dir dumpfile=fulldb.dmp full=y
2.用户导出模式
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo
——导出单个用户数据(dumpfile指定dump文件名;schemas指定要被导出数据的用户)
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo,hgmqo
——导出多个用户数据

3.表导出模式
expdp system/orcl@orcl directory=dmp_dir dumpfile=tabledum.dmp tables=test.emp, test.dept
——导出test用户的emp和dept两个表
expdp system/orcl@orcl directory=dmp_dir dumpfile=tabledum.dmp tables=test.emp query='WHERE deptno=20'
——导出表中符合指定条件的数据,使用query条件的语句较长时采用parfile方式,参见:http://hi.baidu.com/sevenqxy/blog/item/055ee6edcdac2e4679f05512.html

4.表空间导出模式
expdp system/orcl@orcl directory=dmp_dir dumpfile=dumptbs.dmp tablespaces=tbs1,tbs2

5.可移动表空间导出模式(只导出表空间的元数据,不真正导出数据)
expdp system/orcl@orcl directory=dmp_dir dumpfile=dumptbs.dmp transport_tablespaces=tbs1

三、导入数据

1.全库模式导入
impdp test/test@orcl directory=dmp_dir dumpfile=fulldb.dmp full=y
2.用户模式导入
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp remap_schema=user1:user2
——remap_schema参数相当于imp工具中的fromuser和touser参数,可以实现将一个用户的数据导入到另一个用户中
3.表空间模式导入
impdp system/orcl@orcl directory=dmp_dir dumpfile=dumptbs.dmp tablespaces=tbs1
5.追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append

四、 将高版本数据导入低版本中

1.查询oracle版本信息
SQL>show parameter compatible
2.使用version参数导入导出数据
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo version =10.2.0.1.0
impdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo version =10.2.0.1.0


expdp/impdp 使用总结:http://xingxingwx.javaeye.com/blog/131169

参数汇总:

----------------------------Expdp/Impdp的相关参数----------------------------


EXPDP命令行选项
1. ATTACH
该选项用于在客户会话与已存在导出作用之间建立关联.语法如下
ATTACH=[schema_name.]job_name
Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:
Expdp scott/tiger ATTACH=scott.export_job
2. CONTENT
该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
CONTENT=METADATA_ONLY
3. DIRECTORY
指定转储文件和日志文件所在的目录
DIRECTORY=directory_object
Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
建立目录:
CREATE DIRECTORY dump as ‘d:dump’;
查询创建了那些子目录:
SELECT * FROM dba_directories;
4. DUMPFILE
用于指定转储文件的名称,默认名称为expdat.dmp
DUMPFILE=[directory_object:]file_name [,….]
Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象
Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp
5. ESTIMATE
指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
EXTIMATE={BLOCKS | STATISTICS}
设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间
Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS
DIRECTORY=dump DUMPFILE=a.dump
6. EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为N
EXTIMATE_ONLY={Y | N}
设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
7. EXCLUDE
该选项用于指定执行操作时释放要排除对象类型或相关对象
EXCLUDE=object_type[:name_clause] [,….]
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW
8. FILESIZE
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
9. FLASHBACK_SCN
指定导出特定SCN时刻的表数据
FLASHBACK_SCN=scn_value
Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
FLASHBACK_SCN=358523
10. FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=
“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”

11. FULL
指定数据库模式导出,默认为N
FULL={Y | N}
为Y时,标识执行数据库导出.
12. HELP
指定是否显示EXPDP命令行选项的帮助信息,默认为N
当设置为Y时,会显示导出选项的帮助信息.
Expdp help=y
13. INCLUDE
指定导出时要包含的对象类型及相关对象
INCLUDE = object_type[:name_clause] [,… ]
14. JOB_NAME
指定要导出作业的名称,默认为SYS_XXX
JOB_NAME=jobname_string
15. LOGFILE
指定导出日志文件文件的名称,默认名称为export.log
LOGFILE=[directory_object:]file_name
Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
16. NETWORK_LINK
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
17. NOLOGFILE
该选项用于指定禁止生成导出日志文件,默认值为N.
18. PARALLEL
指定执行导出操作的并行进程个数,默认值为1
19. PARFILE
指定导出参数文件的名称
PARFILE=[directory_path] file_name
20. QUERY
用于指定过滤导出数据的where条件
QUERY=[schema.] [table_name:] query_clause
Schema 用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与 CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.
Expdp scott/tiger directory=dump dumpfiel=a.dmp
Tables=emp query=’WHERE deptno=20’
21. SCHEMAS
该方案用于指定执行方案模式导出,默认为当前用户方案.
22. STATUS
指定显示导出作用进程的详细状态,默认值为0
23. TABLES
指定表模式导出
TABLES=[schema_name.]table_name[:partition_name][,…]
Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.
24. TABLESPACES
指定要导出表空间列表
25. TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.
当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时, 导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.
26. TRANSPORT_TABLESPACES
指定执行表空间模式导出
27. VERSION
指定被导出对象的数据库版本,默认值为COMPATIBLE.
VERSION={COMPATIBLE | LATEST | version_string}
为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,
使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.


3) 在同一个数据库中把一个schema中所有的对象复制到另一个schema中。


一、EXPDP&IMPDP和EXP&IMP的用法区别

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 contentALL:对象+导出数据行,DATA_ONLY:只导出对象,METADATA_ONLY:只导出数据的记录)

5expdp10g的新特性而且只能在服务器执行。而exp/imp是通用的。

把一个用户的所有内容导出到另一库里,这个用expdp/impdp最好

有覆盖表的功能参数table_exists_action=replace



一:exp/imp 的命令行选项如下:

二  imp/exp 的功能


a.导出单个用户单个表
      exp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t) 
   导出的是表结构和数据。如果只想导出表结构则需要设置 exp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t)  rows = n 
b.导出单个用户多个表
      exp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t,tt,ttt) log =  E:\oraclepractice\singltable.log
c.导出单个用户及其内容
      exp wolf/wolf@test  file= E:\oraclepractice\userwolf.dmp wner=(wolf)  log =  E:\oraclepractice\userwolf.log
d.导出多个用户及其内容
      exp 'sys/ko@test as sysdba'  file= E:\oraclepractice\userwolfs.dmp wner=(wolf,wolf2)  log =  E:\oraclepractice\userwolfs.log
e.导出整个数据库(包括数据)
      exp 'sys/ko@test as sysdba'  file= E:\oraclepractice\testfull.dmp full=y rows=y log =  E:\oraclepractice\testfull.log
f.导出整个数据库(不包括数据)
g.导入单个用户单个表
       imp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t)
  如果表t已经存在则导入会报错, 这时只要在后面加上 ignore=y ,就可以导入,即使是重复数据也会被导入到表中。导入包含了隐形的提交操作
  imp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t) ignore=y 
h.导入单个用户多个表
       imp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t,tt,ttt) log =  E:\oraclepractice\singltable.log ignore = y
i.导入单个用户及其内容
       imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\userwolf.dmp   log =  E:\oraclepractice\userwolf.log  fromuser = wolf touser=wolf 如果导入到某个用户下面,必须指定fromuser和touser,如果touser的用户当前还不存在导入也不会成功。而且此用户需要有以前用户相同的权限。
g.导入多个用户及其内容
      imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\userwolfs.dmp fromuser=(wolf,wolf2) touser=(wolf,wolf2) log =  E:\oraclepractice\userwolfs.log
k.导入整个数据库(包括数据)
      imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\testfull.dmp full=y rows=y log =  E:\oraclepractice\testfull.log ignore = y
l.导入整个数据库(不包括数据)
      imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\testfull.dmp full=y rows=n log =  E:\oraclepractice\testfull.log ignore = y
m.导出单个、多个表空间
        exp 'sys/ko@test as sysdba' file= E:\oraclepractice\tablespace.dmp log =  E:\oraclepractice\tablespace.log tablespaces=business 
  drop tablespace business including contents  and datafiles 删除表空间的内容,删除表空间的时候表空间内的user不会被删除,他们的表空间会被指定为默认的表空间。
n.导入单个、多个表空间
        imp 'sys/ko@test as sysdba' file= E:\oraclepractice\tablespace.dmp log =  E:\oraclepractice\tablespace.log tablespaces=business   full=y
        导入表空间时,表空间要先建好,否则无法导入。
o.把导出中的部分表数据导入
      imp 'sys/ko@test as sysdba' file= E:\oraclepractice\testfull.dmp  rows=y log =  E:\oraclepractice\testfull.log fromuser=(wolf,wolf2) TABLES=(t,ttt)


三. impdp/expdp的功能


  a.创建目录,给所有用户授予目录的读写权限。
     create directory dump_dir as 'E:\oraclepractice'
     grant read,write on directory log_dir to public
     create directory log_dir as 'E:\oraclepractice'
     grant read,write on directory log_dir to public;
  b.导出表
     expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_tables.dmp logfile=log_dir:pdp_table.log content=all tables=(bu.butest,bu.test3)
     反复导出的时候,如果原来的导出文件名已经存在expdp会报错退出,这跟exp是不同的。
  c.导入表
    impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_tables.dmp logfile=log_dir:pdp_table.log content=all tables=(bu.butest,bu.test3)
  d.导出用户
     expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_schemas.dmp logfile=log_dir:pdp_schemas.log  schemas=(bu,wolf)
  e.导入用户
     impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_schemas.dmp logfile=log_dir:pdp_schemas.log  schemas=(bu,wolf)
  f.导出表空间
     expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_space.dmp logfile=log_dir:pdp_space.log  tablespaces=(business)
  g.导入表空间
     impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_space.dmp logfile=log_dir:pdp_space.log  tablespaces=(business)
     导入表空间的时候如果表空间不存在是不能成功导入的。
  h.导出数据库
      expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_data.dmp logfile=log_dir:pdp_full_data.log  full=y content=data_only
        expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_medata.dmp logfile=log_dir:pdp_full_medata.log  full=y content=metadata_only
      expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full.dmp logfile=log_dir:pdp_full.log  full=y 
  i.导入数据库
      impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_data.dmp logfile=log_dir:pdp_full_data.log  full=y 
      impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_medata.dmp logfile=log_dir:pdp_full_medata.log  full=y 
      impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full.dmp logfile=log_dir:pdp_full.log  full=y 导入到现有用户和表如果不成功,可以选择某几个用户下的表导入。最好先导入元数据,再导入数据。



 




oracle数据泵EXPDP和IMPDP使用说明

6 已有 2278 次阅读   2011-03-27 09:48
首先标题不知道是否正确,oracle数据泵好像包含了好多概念,目前只是零星接触了一下EXPDP和IMPDP工具。据百度而来的资料,oracle10g之后推出的这个工具在性能上要比此前的EXP和IMP要高,而且支持从高版本向低版本导入和导出,所以在需要学习数据导入导出的时候,直接考虑EXPDP和IMPDP了。在此,记录一下这两个工具的使用方法。

一、准备:创建逻辑目录,并赋予oracle对其的读写权限

1.使用EXPDP工具时,其转存储文件只能被存放在directory对象对应的OS目录中,而不能直接指定转存储文件所在的OS目录。在此,先在操作系统创建目录d:\dump
2.以system等管理员身份登录sqlplus,授予用户test对目录对象dmp_dir的读写权限。
create directory dmp_dir as ‘d:\dump’
grant  read, write on directory dmp_dir to test

二、导出数据
1.全库导出模式
expdp test/test@orcl directory=dmp_dir dumpfile=fulldb.dmp full=y
2.用户导出模式
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo
——导出单个用户数据(dumpfile指定dump文件名;schemas指定要被导出数据的用户)
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo,hgmqo
——导出多个用户数据

3.表导出模式
expdp system/orcl@orcl directory=dmp_dir dumpfile=tabledum.dmp tables=test.emp, test.dept
——导出test用户的emp和dept两个表
expdp system/orcl@orcl directory=dmp_dir dumpfile=tabledum.dmp tables=test.emp query='WHERE deptno=20'
——导出表中符合指定条件的数据,使用query条件的语句较长时采用parfile方式,参见:http://hi.baidu.com/sevenqxy/blog/item/055ee6edcdac2e4679f05512.html

4.表空间导出模式
expdp system/orcl@orcl directory=dmp_dir dumpfile=dumptbs.dmp tablespaces=tbs1,tbs2

5.可移动表空间导出模式(只导出表空间的元数据,不真正导出数据)
expdp system/orcl@orcl directory=dmp_dir dumpfile=dumptbs.dmp transport_tablespaces=tbs1

三、导入数据

1.全库模式导入
impdp test/test@orcl directory=dmp_dir dumpfile=fulldb.dmp full=y
2.用户模式导入
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp remap_schema=user1:user2
——remap_schema参数相当于imp工具中的fromuser和touser参数,可以实现将一个用户的数据导入到另一个用户中
3.表空间模式导入
impdp system/orcl@orcl directory=dmp_dir dumpfile=dumptbs.dmp tablespaces=tbs1
5.追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append

四、 将高版本数据导入低版本中

1.查询oracle版本信息
SQL>show parameter compatible
2.使用version参数导入导出数据
expdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo version =10.2.0.1.0
impdp test/test@orcl directory=dmp_dir dumpfile=userdum.dmp schemas=hgmmo version =10.2.0.1.0

它山之石:

expdp/impdp 使用总结:http://xingxingwx.javaeye.com/blog/131169

参数汇总:

----------------------------Expdp/Impdp的相关参数----------------------------

EXPDP命令行选项
1. ATTACH
该选项用于在客户会话与已存在导出作用之间建立关联.语法如下
ATTACH=[schema_name.]job_name
Schema_name
用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:
Expdp scott/tiger ATTACH=scott.export_job
2. CONTENT
该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENTALL ,将导出对象定义及其所有数据.DATA_ONLY,只导出对象数据,METADATA_ONLY,只导出对象定义
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
CONTENT=METADATA_ONLY
3. DIRECTORY
指定转储文件和日志文件所在的目录
DIRECTORY=directory_object
Directory_object
用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
建立目录:
CREATE DIRECTORY dump as ‘d:dump’;
查询创建了那些子目录:
SELECT * FROM dba_directories;
4. DUMPFILE
用于指定转储文件的名称,默认名称为expdat.dmp
DUMPFILE=[directory_object:]file_name [,….]
Directory_object
用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象
Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp
5. ESTIMATE
指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
EXTIMATE={BLOCKS | STATISTICS}
设置为BLOCKS,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS,根据最近统计值估算对象占用空间
Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS
DIRECTORY=dump DUMPFILE=a.dump
6. EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为N
EXTIMATE_ONLY={Y | N}
设置为Y,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,N,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
7. EXCLUDE
该选项用于指定执行操作时释放要排除对象类型或相关对象
EXCLUDE=object_type[:name_clause] [,….]
Object_type
用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDEINCLUDE不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW
8. FILESIZE
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
9. FLASHBACK_SCN
指定导出特定SCN时刻的表数据
FLASHBACK_SCN=scn_value
Scn_value
用于标识SCN.FLASHBACK_SCNFLASHBACK_TIME不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
FLASHBACK_SCN=358523
10. FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=
“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”

11. FULL
指定数据库模式导出,默认为N
FULL={Y | N}
Y,标识执行数据库导出.
12. HELP
指定是否显示EXPDP命令行选项的帮助信息,默认为N
当设置为Y,会显示导出选项的帮助信息.
Expdp help=y
13. INCLUDE
指定导出时要包含的对象类型及相关对象
INCLUDE = object_type[:name_clause] [,… ]
14. JOB_NAME
指定要导出作业的名称,默认为SYS_XXX
JOB_NAME=jobname_string
15. LOGFILE
指定导出日志文件文件的名称,默认名称为export.log
LOGFILE=[directory_object:]file_name
Directory_object
用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
16. NETWORK_LINK
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
17. NOLOGFILE
该选项用于指定禁止生成导出日志文件,默认值为N.
18. PARALLEL
指定执行导出操作的并行进程个数,默认值为1
19. PARFILE
指定导出参数文件的名称
PARFILE=[directory_path] file_name
20. QUERY
用于指定过滤导出数据的where条件
QUERY=[schema.] [table_name:] query_clause
Schema 
用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与 CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.
Expdp scott/tiger directory=dump dumpfiel=a.dmp
Tables=emp query=’WHERE deptno=20’
21. SCHEMAS
该方案用于指定执行方案模式导出,默认为当前用户方案.
22. STATUS
指定显示导出作用进程的详细状态,默认值为0
23. TABLES
指定表模式导出
TABLES=[schema_name.]table_name[:partition_name][,…]
Schema_name
用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.
24. TABLESPACES
指定要导出表空间列表
25. TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.
当设置为Y,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.
26. TRANSPORT_TABLESPACES
指定执行表空间模式导出
27. VERSION
指定被导出对象的数据库版本,默认值为COMPATIBLE.
VERSION={COMPATIBLE | LATEST | version_string}
COMPATIBLE,会根据初始化参数COMPATIBLE生成对象元数据;LATEST,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,
使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.


3) 
在同一个数据库中把一个schema中所有的对象复制到另一个schema中。

一、EXPDP&IMPDP和EXP&IMP的用法区别

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:只导出数据的记录)

5expdp10g的新特性而且只能在服务器执行。而exp/imp是通用的。

把一个用户的所有内容导出到另一库里,这个用expdp/impdp最好

有覆盖表的功能参数table_exists_action=replace


  exp/imp,expdp/impdp的用法举例和比较 

分类: Linux

一:exp/imp 的命令行选项如下:

二  imp/exp 的功能


a.导出单个用户单个表
      exp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t) 
   导出的是表结构和数据。如果只想导出表结构则需要设置 exp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t)  rows = n 
b.导出单个用户多个表
      exp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t,tt,ttt) log =  E:\oraclepractice\singltable.log
c.导出单个用户及其内容
      exp wolf/wolf@test  file= E:\oraclepractice\userwolf.dmp wner=(wolf)  log =  E:\oraclepractice\userwolf.log
d.导出多个用户及其内容
      exp 'sys/ko@test as sysdba'  file= E:\oraclepractice\userwolfs.dmp wner=(wolf,wolf2)  log =  E:\oraclepractice\userwolfs.log
e.导出整个数据库(包括数据)
      exp 'sys/ko@test as sysdba'  file= E:\oraclepractice\testfull.dmp full=y rows=y log =  E:\oraclepractice\testfull.log
f.导出整个数据库(不包括数据)
g.导入单个用户单个表
       imp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t)
  如果表t已经存在则导入会报错, 这时只要在后面加上 ignore=y ,就可以导入,即使是重复数据也会被导入到表中。导入包含了隐形的提交操作
  imp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t) ignore=y 
h.导入单个用户多个表
       imp wolf/wolf@test file= E:\oraclepractice\singltable.dmp tables=(t,tt,ttt) log =  E:\oraclepractice\singltable.log ignore = y
i.导入单个用户及其内容
       imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\userwolf.dmp   log =  E:\oraclepractice\userwolf.log  fromuser = wolf touser=wolf 如果导入到某个用户下面,必须指定fromuser和touser,如果touser的用户当前还不存在导入也不会成功。而且此用户需要有以前用户相同的权限。
g.导入多个用户及其内容
      imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\userwolfs.dmp fromuser=(wolf,wolf2) touser=(wolf,wolf2) log =  E:\oraclepractice\userwolfs.log
k.导入整个数据库(包括数据)
      imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\testfull.dmp full=y rows=y log =  E:\oraclepractice\testfull.log ignore = y
l.导入整个数据库(不包括数据)
      imp 'sys/ko@test as sysdba'  file= E:\oraclepractice\testfull.dmp full=y rows=n log =  E:\oraclepractice\testfull.log ignore = y
m.导出单个、多个表空间
        exp 'sys/ko@test as sysdba' file= E:\oraclepractice\tablespace.dmp log =  E:\oraclepractice\tablespace.log tablespaces=business 
  drop tablespace business including contents  and datafiles 删除表空间的内容,删除表空间的时候表空间内的user不会被删除,他们的表空间会被指定为默认的表空间。
n.导入单个、多个表空间
        imp 'sys/ko@test as sysdba' file= E:\oraclepractice\tablespace.dmp log =  E:\oraclepractice\tablespace.log tablespaces=business   full=y
        导入表空间时,表空间要先建好,否则无法导入。
o.把导出中的部分表数据导入
      imp 'sys/ko@test as sysdba' file= E:\oraclepractice\testfull.dmp  rows=y log =  E:\oraclepractice\testfull.log fromuser=(wolf,wolf2) TABLES=(t,ttt)


三. impdp/expdp的功能


  a.创建目录,给所有用户授予目录的读写权限。
     create directory dump_dir as 'E:\oraclepractice'
     grant read,write on directory log_dir to public
     create directory log_dir as 'E:\oraclepractice'
     grant read,write on directory log_dir to public;
  b.导出表
     expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_tables.dmp logfile=log_dir:pdp_table.log content=all tables=(bu.butest,bu.test3)
     反复导出的时候,如果原来的导出文件名已经存在expdp会报错退出,这跟exp是不同的。
  c.导入表
    impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_tables.dmp logfile=log_dir:pdp_table.log content=all tables=(bu.butest,bu.test3)
  d.导出用户
     expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_schemas.dmp logfile=log_dir:pdp_schemas.log  schemas=(bu,wolf)
  e.导入用户
     impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_schemas.dmp logfile=log_dir:pdp_schemas.log  schemas=(bu,wolf)
  f.导出表空间
     expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_space.dmp logfile=log_dir:pdp_space.log  tablespaces=(business)
  g.导入表空间
     impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_space.dmp logfile=log_dir:pdp_space.log  tablespaces=(business)
     导入表空间的时候如果表空间不存在是不能成功导入的。
  h.导出数据库
      expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_data.dmp logfile=log_dir:pdp_full_data.log  full=y content=data_only
        expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_medata.dmp logfile=log_dir:pdp_full_medata.log  full=y content=metadata_only
      expdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full.dmp logfile=log_dir:pdp_full.log  full=y 
  i.导入数据库
      impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_data.dmp logfile=log_dir:pdp_full_data.log  full=y 
      impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full_medata.dmp logfile=log_dir:pdp_full_medata.log  full=y 
      impdp 'sys/ko@test as sysdba' dumpfile=dump_dir:pdp_full.dmp logfile=log_dir:pdp_full.log  full=y 导入到现有用户和表如果不成功,可以选择某几个用户下的表导入。最好先导入元数据,再导入数据。



 


这篇关于oracle数据泵EXPDP和IMPDP使用说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/963084

相关文章

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

MySQL中比较运算符的具体使用

《MySQL中比较运算符的具体使用》本文介绍了SQL中常用的符号类型和非符号类型运算符,符号类型运算符包括等于(=)、安全等于(=)、不等于(/!=)、大小比较(,=,,=)等,感兴趣的可以了解一下... 目录符号类型运算符1. 等于运算符=2. 安全等于运算符<=>3. 不等于运算符<>或!=4. 小于运

使用zip4j实现Java中的ZIP文件加密压缩的操作方法

《使用zip4j实现Java中的ZIP文件加密压缩的操作方法》本文介绍如何通过Maven集成zip4j1.3.2库创建带密码保护的ZIP文件,涵盖依赖配置、代码示例及加密原理,确保数据安全性,感兴趣的... 目录1. zip4j库介绍和版本1.1 zip4j库概述1.2 zip4j的版本演变1.3 zip4

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处