`
JEmql
  • 浏览: 62390 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

数据泵导出命令 expdp 常用使用总结

阅读更多

1.1.1  expdp使用

 

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

 

 


首先得建DIRECTORY:

SQL> conn /as sysdba

SQL> CREATE OR REPLACE DIRECTORY  dir_dump   AS '/u0 1 /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.  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时,根据最近统计值估算对象占用空间 ,示例如下:

e xpdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump

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

 

 

6.  EXTIMATE_ONLY

指定是否只估算导出作业所占用的磁盘空间,默认值为N.语法如下:

EXTIMATE_ONLY={Y | N}

设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作 ,示例如下:

e xpdp 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  <other_parameters> schema=scott exclude=sequence,table:"in('EMP','DEPT')"

impdp  <other_parameters> 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不能同时使用,示例如下:

e xpdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=358523

 

 

10.  FLASHBACK_TIME

指定导出特定时间点的表数据.语法如下:

FLASHBACK_TIME="TO_TIMESTAMP(time_value)"

示例如下:

e xpdp 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时,会显示导出选项的帮助信息 ,示例如下:

e xpdp help=y

 

 

13.  INCLUDE

指定导出时要包含的对象类型及相关对象.语法如下:

INCLUDE=object_type[:name_clause][,… ]

示例如下:

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

 

14.  JOB_NAME

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

JOB_NAME=jobname_string

示例如下:

e xpdp 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的相应选项值 ,示例如下:

e xpdp 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.

a) 创建到服务端的dblink

conn aa/aacc

create database link link_name connect to bb identified by password using 'connect_string';

b) 建立directory

conn / as sysdba

create or replace directory dir as 'directory';

grant read,write on directory dir to bb;

c) 通过network_link导出

expdp aa/aacc directory=dir network_link=link_name ...

 

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等选项同时使用 ,示例如下:

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

分享到:
评论

相关推荐

    oracle数据泵的方式导入导出数据库

    除了基本的数据泵命令外,还有一些其他常用的命令可以帮助我们更好地管理数据库。例如: 1. **删除用户**: ```sql drop user hxcms610 cascade; ``` 这条命令用于删除用户 `hxcms610` 及其所有的依赖对象。 2...

    oracle 数据泵详解

    二、数据泵导出导入与传统导出导入的区别 数据泵导出导入与传统导出导入的主要区别在于: * 数据泵可以处理大量数据,并且速度更快。 * 数据泵支持并行处理,可以充分利用多 CPU 的优势。 * 数据泵可以将数据直接...

    史上最全Oracle数据泵常用命令.docx

    ### Oracle 数据泵(Data Pump)常用命令详解 #### 概述 Oracle 数据泵是一组用于高效导入导出数据的强大工具,主要包括两个命令行工具:`expdp` 和 `impdp`。它们支持快速地在Oracle数据库之间进行数据迁移,不仅...

    expdp impdp数据泵

    根据提供的标题、描述、标签及部分内容,我们可以深入探讨Oracle数据库中的`expdp`与`impdp`命令,即数据泵导出与导入功能。这部分内容是Oracle数据库管理中非常重要的一部分,尤其是在进行数据备份、迁移以及恢复...

    oracle数据泵导入导出byxiao

    Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中。此为常用导入导出命令。

    oracle数据导入导出大全

    数据泵导出(expdp)是Oracle 10g及更高版本引入的高效数据导出工具。它使用了并行处理,可以快速导出大量数据。expdp支持各种导出选项,如表、模式、表空间或整个数据库。例如,基本的expdp命令如下: ``` expdp ...

    数据导入导出

    2. 运行导出命令:使用`expdp`命令,指定相应的参数,如用户名、口令、导出路径等。 3. 存储导出文件:导出文件通常为二进制格式,应妥善保存,以便后续导入。 在Oracle中,还有其他一些工具可用于数据导入导出,...

    oracle 数据导入导出

    - **导入(Import)**:在目标系统上使用`impdp`命令,指定用户名、口令、数据泵目录和要导入的`.dmp`文件。例如: ``` impdp username/password directory=DATA_PUMP_DIR dumpfile=mydata.dmp logfile=impdp_...

    数据库导入导出说明.docx

    4. 使用数据泵前,要在服务器上创建并验证逻辑目录的可用性。 5. 确认导入导出的数据库版本兼容性。 6. 明确导入操作是覆盖现有数据,还是仅插入新数据或替换特定表。 7. 检查目标数据库的磁盘空间,必要时扩展表...

    expdp,impdp常用方法.pdf

    - Exp 和 Imp 工具在 10g 之前使用广泛,但自 10g 开始,Oracle 同时保留了这些工具,并引入了数据泵工具 Expdp 和 Impdp。 - **工具使用限制**: - Exp 和 Imp 可以在客户端和服务端使用。 - Expdp 和 Impdp 仅...

    oracle数据导入导出

    本篇文章将深入探讨Oracle中的"exp"和"imp"命令,它们是Oracle传统数据泵工具的一部分,用于实现数据的导出和导入。 1. **Oracle数据导出(exp)** - **exp命令简介**:exp是Oracle数据库提供的一个实用程序,用于...

    oracle数据泵的使用

    #### 二、数据泵导出(EXPDP) ##### 1. ATTACH 选项 - **功能**:该选项用于连接到一个已存在的作业。 - **语法**: ```sql ATTACH=[schema_name.]job_name ``` - **说明**:其中 `schema_name` 指定用户名称...

    Oracle 导出导入迁移方案V1.4.docx

    Oracle 数据泵导出导入迁移方案是一种高效的数据迁移技术,尤其适用于Oracle 10g、11g和12c版本的数据库系统。本方案详细介绍了数据泵的工作原理、使用场景、兼容性,以及一系列关键参数的说明和实例,旨在提供一个...

    批处理的oracle导出备份写法

    Oracle数据库的导出备份通常使用的是Oracle的数据泵工具(expdp),它允许我们创建数据的逻辑备份,这些备份可以是整个数据库、特定用户、表或目录对象。批处理脚本则将这一过程自动化,避免了手动操作的繁琐。 ...

    oracle导入导出命令(imp、exp)

    ### Oracle 导入导出命令(imp、exp)详解 #### 概述 在Oracle数据库管理过程中,数据的导入导出是一项重要的维护工作。Oracle提供了多种工具和技术来完成这项任务,其中最为人所熟知的就是传统的`exp`和`imp`命令...

    Oracle中的建表空间,建用户,授权,命令行导入导出等基本命令

    5. **数据泵导出(impdp)**: ```bash impdp 用户名/密码 directory=目录名 dumpfile=文件名.dmp logfile=日志文件名 [TABLES=(表名1[,...])|EXCLUDE=表名1[,...]] ``` 示例: ```bash impdp my_user/my_...

    oracle里的常用命令

    2. 数据泵导出(expdp): ``` expdp username/password directory=dir_name dumpfile=datafile.dmp logfile=expdp.log tables=(table_name1,table_name2) ``` 3. 数据泵导入(impdp): ``` impdp username/...

    oracle 10g数据泵之impdp

    impdp 使用数据泵导出的转储文件(*.dmp 文件)将数据和元数据导入到数据库中。它可以导入整个数据库、特定的方案、表空间或单个表。impdp 还支持网络模式,允许跨数据库的数据导入。 **2. 使用 impdp 导入数据的...

Global site tag (gtag.js) - Google Analytics