1.1.1 expdp使用

使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.

首先得建DIRECTORY:

SQL> conn /as sysdba

SQL> CREATE OR REPLACE DIRECTORY dir_dump  AS '/u01/backup/';

SQL> GRANT read,write ON DIRECTORY dir_dump TO public;

1) 导出scott整个schema

--默认导出登陆账号的schema

$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

expdp.par内容:

DIRECTORY=dir_dump

DUMPFILE=scott_full.dmp

LOGFILE=scott_full.log

--其他账号登陆, 在参数中指定schemas

$ expdp system/oracle@db_esuite parfile=/orahome/expdp.par

expdp.par内容:

DIRECTORY=dir_dump

DUMPFILE=scott_full.dmp

LOGFILE=scott_full.log

SCHEMAS=SCOTT

2) 导出scott下的dept,emp表

$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

expdp.par内容:

DIRECTORY=dir_dump

DUMPFILE=scott.dmp

LOGFILE=scott.log

TABLES=DEPT,EMP

3) 导出scott下除emp之外的表

$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

expdp.par内容:

DIRECTORY=dir_dump

DUMPFILE=scott.dmp

LOGFILE=scott.log

EXCLUDE=TABLE:"='EMP'"

4) 导出scott下的存储过程

$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

expdp.par内容:

DIRECTORY=dir_dump

DUMPFILE=scott.dmp

LOGFILE=scott.log

INCLUDE=PROCEDURE

5) 导出scott下以'E'开头的表

$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

expdp.par内容:

DIRECTORY=dir_dump

DUMPFILE=scott.dmp

LOGFILE=scott.log

INCLUDE=TABLE:"LIKE 'E%'"   //可以改成NOT LIKE,就导出不以E开头的表

6) 带QUERY导出

$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

expdp.par内容:

DIRECTORY=dir_dump

DUMPFILE=scott.dmp

LOGFILE=scott.log

TABLES=EMP,DEPT

QUERY=EMP:"where empno>=8000"

QUERY=DEPT:"where deptno>=10 and deptno<=40"

注: 处理这样带查询的多表导出, 如果多表之间有外健关联, 可能需要注意查询条件所筛选的数据是否符合这样的外健约束, 比如 EMP中有一栏位是 deptno, 是关联dept中的主键, 如果"where empno>=8000"中得出的deptno=50的话, 那么, 你的dept的条件"where deptno>=10 and deptno<=40"就不包含deptno=50的数据, 那么在导入的时候就会出现错误.

1.1.2 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

一般情况下, 当用默认值(blocks)时, 日志中估计的文件大小会比实际expdp出来的文件大, 用statistics时会跟实际大小差不多.

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

在EXPDP的帮助文件中, 可以看到存在EXCLUDE和INCLUDE参数, 这两个参数文档中介绍的命令格式存在问题, 正确用法是:

EXCLUDE=OBJECT_TYPE[:name_clause][,...]

INCLUDE=OBJECT_TYPE[:name_clause][,...]

示例:

expdp  schema=scott exclude=sequence,table:"in('EMP','DEPT')"

impdp  schema=scott include=function,package,procedure,table:"='EMP'"

有了这些还不够, 由于命令中包含了多个特殊字符, 在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行,

如:

EXCLUDE=TABLE:\"IN('BIGTALE')\"

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][,… ]

示例如下:

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=trigger

1.1.2 expdp选项

14. JOB_NAME

指定要导出作用的名称,默认为SYS_XXX.语法如下:

JOB_NAME=jobname_string

示例如下:

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=trigger JOB_NAME=exp_trigger

后面想临时停止expdp任务时可以按Ctrl+C组合键,退 出当前交互模式,退出之后导出操作不会停止,这不同于Oracle以前的EXP. 以前的EXP,如果退出交互式模式,就会出错终止导出任务. 在 Oracle10g中,由于EXPDP是数据库内部定义的任务,已经与客户端无关. 退出交互之后,会进入export的命令行模式,此时支持 status等查看命令:

Export> status

如果想停止改任务,可以发出stop_job命令:

Export> stop_job

如果有命令行提示: "是否确实要停止此作业([Y]/N):" 或 "Are you sure you wish to stop this job ([yes]/no):", 回答应是yes或者no, 回答是YES以后会退出当前的export界面.

接下来可以通过命令行再次连接到这个任务:

expdp test/test@acf attach=expfull

通过start_job命令重新启动导出:

Export> start_job

Export> status

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

指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.

expdp中使用连接字符串和network_link的区别:

expdp属于服务端工具,而exp属于客户端工具,expdp生成的文件默认是存放在服务端的,而exp生成的文件是存放在客户端.

expdp username/password@connect_string //对于使用这种格式来说,directory使用源数据库创建的,生成的文件存放在服务端。

如何将生成的文件放在目标数据库而不放在源数据库呢,在expdp中使用network_link. 比如在本机expdp远程服务器的数据库,先在本机创建到服务端的dblink,然后创建directory及授权,然后expdp.

创建到服务端的dblink

conn aa/aacc

create database link connect to  identified by using '' ;//username和password是server端的

b.

conn / as sysdba

create or replace directory dir as '/home/oracle/dbbackup';

grant read,write on directory dir to ;

c.expdp username2/password2  directory=dir network_link=link_name ...  //这里的username2用创建dblink的那个用户aa,directory也是目标数据库创建的

比如在本机expdp远程服务器的数据库,先在本机创建到服务端的dblink,然后创建directory及授权,然后expdp useranme2/password2 .....

3.如果想不生成dmp文件而直接导入一个数据库,原理和2类似,直接使用impdp带network_link ,这样可以直接impdp,而绕过了expdp的步骤

impdp network_link=tolink schemas=link remap_schema=link:link2

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用于指定数据库版本字符串.

使用IMPDP

IMPDP命令行选项与EXPDP有很多相同的,不同的有:

1、REMAP_DATAFILE

该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.

REMAP_DATAFIEL=source_datafie:target_datafile

2、REMAP_SCHEMA

该选项用于将源方案的所有对象装载到目标方案中.

REMAP_SCHEMA=source_schema:target_schema

3、REMAP_TABLESPACE

将源表空间的所有对象导入到目标表空间中

REMAP_TABLESPACE=source_tablespace:target_tablespace

4、REUSE_DATAFILES

该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N

REUSE_DATAFIELS={Y | N}

5、SKIP_UNUSABLE_INDEXES

指定导入是是否跳过不可使用的索引,默认为N

6、SQLFILE

指定将导入要指定的索引DDL操作写入到SQL脚本中

SQLFILE=[directory_object:]file_name

Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql

7、STREAMS_CONFIGURATION

指定是否导入流元数据(Stream Matadata),默认值为Y.

8、TABLE_EXISTS_ACTION

该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP

TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }

当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项

9、TRANSFORM

该选项用于指定是否修改建立对象的DDL语句

TRANSFORM=transform_name:value[bject_type]

Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.

Impdp scott/tiger directory=dump dumpfile=tab.dmp Transform=segment_attributes:n:table

10、TRANSPORT_DATAFILES

该选项用于指定搬移空间时要被导入到目标数据库的数据文件

TRANSPORT_DATAFILE=datafile_name

Datafile_name用于指定被复制到目标数据库的数据文件

Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp TRANSPORT_DATAFILES='/user01/data/tbs1.f'

调用IMPDP

1、导入表

Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp

Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp

REMAP_SCHEMA=SCOTT:SYSTEM

第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM

注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.

2,导入方案

Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott

Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system

3,导入表空间

Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01

4,导入数据库

Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y

--赋予expdp,impdp的权限

SQL> grant exp_full_database,imp_full_database to susan;

oracle10g支持数据泵么,Oracle 10g使用数据泵(EXPDP和IMPDP)。相关推荐

  1. oracle10g 操作系统,各版本操作系统ORACLE 10g 下载(包括windows和linux)

    现在oracle官网只能下载11g最新版本了,本人学习和工作需要下载的10g地址如下:Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Sta ...

  2. Oracle 10g DG 数据文件迁移

    背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来. 环境:Oracle 10.2.0.5 DG 单机 首先 ...

  3. oracle10g数据库复制,windows 下oracle 10G 数据库移植到 linux平台 (通过文件直接复制方法)...

    windows 下oracle 10G  数据库移植到 linux平台 (通过文件直接复制方法) 最近学习了一下oracle数据库启动原理,于是,就把在windows创建起来做测试的数据库 移植到li ...

  4. oracle存储换硬盘,Oracle 10g RAC 数据存储更换

    说明 目前数据库为10gRAC 环境(10.2.0.4) ,操作系统为 ,采用ASM 磁盘组,需要对存储进行迁移,计划迁移采用oracle rman 迁移方案,确保迁移安全可控.本次迁移涉及ocr,v ...

  5. rhel5.8安装oracle10g,RHEL 5.8 安装Oracle 10g r2 clusterware 报错

    rhel 5.8 安装oracle 10g r2 clusterware 报错 这个报错和网上的大部分答案都不一样的,报错也不是缺少32位的rpm包,,是之前报错修改vipca 的时候多注释掉一行 , ...

  6. oracle 数据有引号,oracle插入字符串数据时字符串中有'单引号问题

    使用insert into(field1,field2...) values('val1','val2'...)时,若值中有单引号时会报错. 处理方法:判断一下val1,val2中是否含有单引号,若含 ...

  7. oracle数据误删除怎么恢复,oracle误删除的数据怎么恢复 oracle恢复删除的数据方法...

    oracle误删除的数据怎么恢复?下面为大家带来oracle恢复删除的数据方法: PART1 分为两种方法:scn和时间戳两种方法恢复. 一.通过scn恢复删除且已提交的数据 1.获得当前数据库的sc ...

  8. oracle如何删除重复数据第一条,oracle删除重复数据保留第一条记录

    oracle删除重复数据保留第一条记录 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 gr ...

  9. oracle中数据文件创建,操作oracle中的数据文件

    收藏于http://dev.yesky.com/296/8090796.shtml Oracle数据库 中管理表空间和数据文件 数据库的三大组成部分:数据文件,控制文件,Redo日志. 表空间分为系统 ...

最新文章

  1. 你熟悉Git常用的命令吗?(点赞+收藏)
  2. jenkins maven没有使用全局设置文件地址_持续集成工具Jenkins看这篇就够啦!
  3. MySQL默认数据库简介
  4. git学习(四):理解git暂存区(stage)
  5. redis内存淘汰和持久化_REDIS的淘汰机制与持久化
  6. yum 快速安装 LAMP
  7. vb UTF文本文件访问
  8. SQL 2008R2 安装失败问题
  9. windows c++ 服务 当前用户提权_关于Windows下的提权方式(上)
  10. Spark机器学习(12):神经网络算法
  11. 在linux下搭建tftp服务器,嵌入式linux常用服务配置之tftp服务器配置
  12. (一)前端html+css学习笔记
  13. CAT 实时监控与项目集成
  14. Unity游戏动画 从入门到住院 1
  15. LeetCode hot-100 简单and中等难度,71-80.
  16. 降暑小程序:40°高温,Python带你“清凉一夏”!!!!
  17. oracle 减少表空间,oracle减小数据库表空间
  18. 一般IPTV/OTT直播点播系统都具有那些功能?
  19. 基于slam的三维重建_实时三维重建算法的实现 基于Kinect与单目视觉SLAM的三维重建.docx...
  20. 分享10个ico图标搜索下载网站

热门文章

  1. 1002 写出这个数 (20分)-Java
  2. python3.5兼容2.7吗_Python版本2.7切3.5和3.5切2.7
  3. setstate是同步还是异步_谈谈 IO模型:同步、异步、阻塞、非阻塞
  4. android 动态库 后缀,Android Robolectric加载运行本地So动态库
  5. Win7旗舰版电脑开机慢的解决方法
  6. 无法打开Win11系统小组件怎么办
  7. Foxmail新建自动标签功能在哪 如何给Foxmail收件人邮件设置自动标签
  8. windows7怎么清空电脑只剩系统
  9. Unity3D下Linux平台播放RTSP或RTMP流
  10. nodejs 安装后 npm-v 无效,node全局环境配置