当前位置:文档之家› expdp和impdp的用法

expdp和impdp的用法

expdp和impdp的用法
expdp和impdp的用法

Expdp和Impdp的用法

马飞

2016-7-18

一、概述

Oracle官方对此的形容是:OracleDataPump technology enables Very High-Speed movement of data and metadata from one database to another.其中Very High-Speed是亮点。

先说数据泵提供的主要特性(包括,但不限于):

1. 支持并行处理导入、导出任务

2. 支持暂停和重启动导入、导出任务

3. 支持通过Database Link的方式导出或导入远端数据库中的对象

4. 支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、数据文件或数据所在表空间。

5. 导入/导出时提供了非常细粒度的对象控制。通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象。

二、什么是Directory对象

Directory对象是Oracle10g版本提供的一个新功能。他是一个指向,指向了操作系统中的一个路径。每个Directory都包含 Read,Write两个权限,可以通过Grant命令授权给指定的用户或角色。拥有读写权限的用户就可以读写该Directory对象指定的操作系统路径下的文件。

无论在什么地方使用expdp,生成的文件最终页是在服务器上(Directory指定的位置)

三、如何调用

1. 命令行方式

最简单的调用,但是写的参数有限,建议使用参数文件的方式。

2. 参数文件方式

最常用的方式。通常需要先编写一个参数文件。指定导出时需要的各种参数。然后以如下方式调用。

expdp user/pwd parfile=xxx.par

这个xxx.par即是我们编辑的参数文件。注意,在这个命令行后面,同样可以再跟别的参数,甚至是在par参数文件中指定过的参数。如果执行命令中附加的参数与参数文件中的参数有重复,最终采用哪个参数,会以参数最后出现的位置

而定。如:expdp user/pwd parfile=xxx.par logfile=a.log,如果在参数文件中也指定了logfile,这里会以命令行中的logfile为准;如:expdp user/pwd logfile=a.log parfile=xxx.par,而这个,则会以参数文件中的为准,因为parfile=xxx.par写在命令行的后面。

3. 交互方式

Data Pump导入导出任务支持停止,重启等状态操作。如用户执行导入或者导出任务,执行了一半时,使用Crtl+C中断了任务(或其他原因导致的中断),此时任务并不是被取消,而是被转移到后台。可以再次使用expdp/impdp命令,附加attach参数的方式重新连接到中断的任务中,并选择后续的操作。这就是交互方式。

Warning : 什么是attach参数,每执行一个导入,或者导出,在命令的第一行,会有以下信息:Starting “BAM”.”SYS_EXPORT_SCHEMA_01″: bam/******** parfile=expdp_tbs.par,这个SYS_EXPORT_SCHEMA_01就是我们的attach参数。-bash-3.00$ expdp bam/bam parfile=expdp_tbs.par

Export: Release 10.2.0.4.0 – 64bit Production on Friday, 13 August, 2010 16:35:18

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting “BAM”.”SYS_EXPORT_SCHEMA_01″: bam/********

parfile=expdp_tbs.par

如果想使用交互方式,可以使用如:expdp attach SYS_EXPORT_SCHEMA_01 进入到交互模式

四、操作模式

1. 全库模式

导入或者导出整个数据库,对应impdp/expdp命令中的full参数,只有拥有dba 或者 exp_full_database和imp_full_database权限的用户才能执行。

2. Schema模式

导出或导入Schema下的自有对象,对应impdp/expdp命令中的Schema参数,这是默认的操作模式。如果拥有dba或者 exp_full_database和

imp_full_database权限的用户执行的话,就可以导出或导入多个Schema中的对象。

3. 表模式

导出指定的表或者表分区(如果有分区的话)以及依赖该表的对象(如该表的索引,约束等,不过前提是这些对象在同一个 Schema中,或者执行的用户有相应的权限)。对应impdp/expdp命令中的Table参数。

4. 表空间模式

导出指定的表空间中的内容。对应impdp/expdp中的Tablespaces参数,这种模式类似于表模式和 Schema模式的补充。

5. 传输表空间模式

对应impdp/expdp中的Transport_tablespaces参数。这种模式与前面几种模式最显著的区别是生成的Dump文件中并不包含具体的逻辑数据,而只导出相关对象的元数据(即对象的定义,可以理解成表的创建语句),逻辑数据仍然在表空间的数据文件中,导出时需要将元数据和数据文件同时复制到目标端服务器。

这种导出方式效率很高,时间开销主要是花在复制数据文件产生的I/O上。expdp 执行传输表空间模式的导出,用户必须拥有 exp_full_database角色或者DBA 角色。而通过传输表空间模式导入时,用户必须拥有imp_full_database角色或者DBA角色。

五、过滤数据

过滤数据主要依赖于Query和Sample两个参数。其中Sample参数主要针对expdp导出功能。

5.1 Query

与exp命令中的Query功能类似,不过Expdp中,该参数功能得到了增强,控制的粒度更细。Expdp中的Query也是指定类似where语句来限定记录。语法如下:

Query = [Schema.][Table_name:] Query_clause

默认情况如果不指定Schema.table_name,则Query_clause针对所有导出的表有效,或者你可以为每一个表指定不同的 Query_clause,如:导出a表中所有id<5的记录,导出b表中所有name=’a’的记录,则Query的参数应该如下:

Query=A:”Where id<5″,B:”Where name=’a’”

如果Where条件前没有指定Schema名或者表名的话,默认就是针对当前所有要被导出的表。如:Query=Where id <5

Warning: 建议把Query参数放入到参数文件中使用,以避免转义符带来的麻烦。

5.2. Sample

该参数用来指定导出数据的百分比,可指定的值的范围从0.000001 到99.999999,语法如下:

Sample=[[Schema_name.]Table_name:]sample_percent

指定该参数以后,EXPDP导出将自动控制导出的记录量,如导出A表中50%的记录,设置的Sample参数如下:

Sample=A:50

Warning: Sample_percent指定的值只是一个参考值,EXPDP会根据数据量算出一个近似值。

六、过滤对象

过滤对象主要依赖于Include和Exclude两个参数。这两个参数作用正好相反,在这两个参数中,可以指定你知道的任何对象类型(如:Package、Procedure、Table等等)或者对象名称(支持通配符)

1. Exclude 反规则

指定不被包含的对象类型或者对象名称。指定了该参数以后,指定的对象类型对应的所有对象都不会被导入或导出。如果被排除的对象有依赖的对象,那么其依赖的对象也不会被导入或导出。如:通过Exclude参数指定不导出表对象的话,不仅指定的表不会被导出,连这些表关联的Index、Check等都不会被导出。语法如下:

Exclude=object_type[:name_clause][, ...]

Warning: Exclude参数支持同时指定多个参数值,如:不导入A表的索引,也不导入B表的约束(假设A表的索引以idx_a开头,B表的约束以chk_b开头),连所有的授权都不想导入,那么Exclude参数设置如下:

Exclude=Index:”like ‘idx_a%’”, Constraint:”like ‘chk_b%’”, Grant

Warning: 建议把Exclude参数放入到参数文件中使用,以避免转义符带来的麻烦。

2. Include 正规则

与Exclude正好相反。指定包含的对象类型或者对象名称。

Warning: 由于两个参数功能正好相反,因此在执行导入或导出命令时,两个参数不能同时使用,否则Oracle也不知道你想要干什么啦。

七、高级过滤

在导出/导入的时候,我们常常有这样的需求,只想导出/导入表结构,或者只想导出/导入数据。幸运的是数据泵也提供了该功能。使用 Content参数。该参数有三个属性

1) ALL : 导出/导入对象定义和数据,该参数的默认值就是ALL

2) DATA_ONLY : 只导出/导入数据。

3) METADATA_ONLY : 只导出/导入对象定义。

Warning: 有一点值得注意的时,在执行导出的时候,如果使用了高级过滤,如只导出了数据,那么导入时,需要确保数据定义已经存在。否则数据都变成没有主子了。如果数据定义已经存在,导入时最好指定data_only,否则会触发ORA-39151错误,因为对象已经存在了。

过滤已经存在的数据

我们知道,导入的表对象在目标库中已经存在,并且目标端没有创建数据完整性约束条件(RI)来检验数据的话,就有可能造成数据被重复导入。数据泵提供了一个新的参数Table_exists_action,可以一定程度上降低重复数据的产

生。该参数用来控制如果要导入的表对象存在,执行什么操作。有以下几个参数值:

1) SKIP : 跳过该表,继续处理下一个对象。该参数默认就是SKIP。值得注意的是,如果你同时指定了CONTENT参数为Data_only的话,SKIP参数无效,默认为APPEND。

2) APPEND : 向现有的表中添加数据。

3) TRUNCATE : TRUNCATE当前表,然后再添加记录。使用这个参数需要谨慎,除非确认当前表中的数据确实无用。否则可能造成数据丢失。

4) REPLACE : 删除并重建表对象,然后再向其中添加数据。值得注意的是,如果同时指定了CONTENT参数为Data_only的话,REPLACE参数无效。

八、重定义表的Schema或表空间

我们还可能会遇到这样的需求,把A用户的对象转移到B用户,或者更换数据的表空间。数据泵通过 Remap_Schema和Remap_tablespace参数实现了该功能。

1) REMAP_SCHEMA : 重定义对象所属Schema

该参数的作用类似IMP中的Fromuser+Touser,支持多个Schema的转换,语法如下:

REMAP_SCHEMA=Source_schema:Target_schema[,Source_schema:Target_sc hema]

如把A的对象转换到C用户,将C转换到D用户。Remap_schema=a:b,c:d Warning: 不能在同一个IMPDP命令中指定remap_schema=a:b,a:c.

2) REMAP_TABLESPACE : 重定义对象所在的表空间。

该参数用来重映射导入对象存储的表空间,支持同时对多个表空间进行转换,相互间用逗号分割。语法如下:

REMAP_TABLESPACE=Source_tablespace:Target_tablespace[,Source_tabl espace:Target_tablespace]

Warning: 如果使用Remap_tablespace参数,则要保证导入的用户对目标表空间有读写权限。

九、优化导入/导出效率

对于大数据量来说,我们不得不考虑效率问题。数据泵对效率也提出了更高的要求。甚至官方的描述就是Oracle Data Pump technology enables Very High-Speed movement of data and metadata from one database to another.这里的Very High-Speed依赖我们的parallel参数。

所有的优化操作都会有三种结果:变得更好、没有变化、变得更差。Parallel 参数也是这样,并不是指定一个大于1的参数,性能就会有提升。

1) 对于导出的parallel

对于导出来说,由于dump文件只能由一个线程进行操作(包括I/O处理),因此如果输出的DUMP文件只有一个,即使你指定再多的并行,实际工作仍然是一个,而且还会触发ORA-39095错误。因此,建议设置该参数小于或等于生成的DUMP文件数量。那么,如何控制生成的DUMP文件数量呢?

EXPDP 命令提供了一个FILESIZE参数,用来指定单个DUMP文件的最大容量,要有效的利用parallel参数,filesize参数必不可少。

举例:某用户对象占用了4G左右的空间,实际导出后的DUMP文件约为3G,我们尝试在导出该用户时指定并行度为4,设置单个文件不超过500M,则语法如下:

$ expdp user/pwd directory=dump_file dumpfile=expdp_20100820_%U.dmp logfile=expdp_20100820.log filesize=500M parallel=4

2) 对于导入的parallel

对于导入来说,使用parallel参数则要简单的多,我认为导入更能体现parallel参数的优势。参数设置为几,则认为同时将几张表的内容导入到库中。

举例:某dmp文件中包含了200张表,我们尝试在导入该DMP文件时指定并行度为10,则语法如下:

$ impdp user/pwd directory=dump_file dumpfile=expdp_20100820.dmp logfile=impdp_20100820.log parallel=10

十、执行导出

1. 如何起步

前面介绍了一些基本知识,现在我们来试试如何操作吧。

举例如下:从10.1.133.98服务器上,将除数据之外的所有信息导入到10.1.133.88数据库中。

1) 创建一个Directory对象,并授予用户读写权限。

SQL> create directory dump_file as ‘/home/oracle/backup’;

Directory created.

SQL> grant read,write on directory dump_file to bam;

Grant succeeded.

如上,生成的DMP文件将会放在/home/oracle/backup目录下。

2) 编写一个导出的参数文件。

-bash-3.00$ vi expdp_tbs.par

DIRECTORY=DUMP_FILE

DUMPFILE=expdp_bamdb2bamtest.dmp

LOGFILE=expdp_bamdb2bamtest.log

CONTENT=METADATA_ONLY

如上,指定了生成的dmp文件名以及日志名(这些都会被放在

/home/oracle/backup下),以及导出模式为:metadata_only–只导出结构,不包含数据。

3) 执行导出命令

-bash-3.00$ expdp bam/bam parfile=expdp_tbs.par

Export: Release 10.2.0.4.0 –64bit Production on Friday, 13 August, 2010 16:35:18

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release

10.2.0.4.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting “BAM”.”SYS_EXPORT_SCHEMA_01″: bam/********

parfile=expdp_tbs.par

Processing object type SCHEMA_EXPORT/USER

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT

Processing object type SCHEMA_EXPORT/ROLE_GRANT

Processing object type SCHEMA_EXPORT/DEFAULT_ROLE

Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA

Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC

Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE

Processing object type SCHEMA_EXPORT/TABLE/TABLE

Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type

SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/COMMENT

Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION

Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE

Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION

Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Processing object type SCHEMA_EXPORT/VIEW/VIEW

Processing object type

SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type

SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX

Processing object type

SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STAT ISTICS

Processing object type

SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Processing object type SCHEMA_EXPORT/JOB

Master table “BAM”.”SYS_EXPORT_SCHEMA_01″ successfully loaded/unloaded

***************************************************************** *************

Dump file set for BAM.SYS_EXPORT_SCHEMA_01 is:

/home/oracle/backup/expdp_bamdb2bamtest.dmp

Job “BAM”.”SYS_EXPORT_SCHEMA_01″ successfully completed at 16:41:26

4) 将文件传输到10.1.133.88机器上。

-bash-3.00$ ftp 10.1.133.88

Connected to 10.1.133.88.

220 BNM-TEST2 FTPserverready.

Name (10.1.133.88:oracle): oracle

331 Password required for oracle.

Password:

230 User oracle logged in.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> bin

200 Type set to I.

ftp> put /home/oracle/backup/expdp_bamdb2bamtest.dmp

/export/app22/backup/expdp_bamdb2bamtest.dmp

200 PORT command successful.

150 Opening BINARY mode data connection for

/export/app22/backup/expdp_bamdb2bamtest.dmp.

226 Transfer complete.

local: /home/oracle/backup/expdp_bamdb2bamtest.dmp remote:

/export/app22/backup/expdp_bamdb2bamtest.dmp

125329408 bytes sent in 1.4 seconds (89551.55 Kbytes/s)

ftp> bye

221-You have transferred 125329408 bytes in 1 files.

221-Total traffic for this session was 125329890 bytes in 1 transfers.

221-Thank you for using the FTP service on BNM-TEST2.

221 Goodbye.

5) 执行导入

-bash-3.00$ impdp bam/bam directory=dump_file

dumpfile=expdp_bamdb2bamtest.dmp logfile=expdp_bamdb2bamtest.log

table_exists_action=replace

Import: Release 10.2.0.4.0 –64bit Production on Friday, 13 August, 2010 16:44:51

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release

10.2.0.4.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Master table “BAM”.”SYS_IMPORT_FULL_01″ successfully

loaded/unloaded

Starting “BAM”.”SYS_IMPORT_FULL_01″: bam/********

directory=dump_file dumpfile=expdp_bamdb2bamtest.dmp

logfile=expdp_bamdb2bamtest.log table_exists_action=replace Processing object type SCHEMA_EXPORT/USER

ORA-31684: Object type USER:”BAM” already exists

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT

Processing object type SCHEMA_EXPORT/ROLE_GRANT

Processing object type SCHEMA_EXPORT/DEFAULT_ROLE

Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA

Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC

Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE

Processing object type SCHEMA_EXPORT/TABLE/TABLE

6) 如何进入交互模式

在这里,我正在执行导入,我想进入交互模式,查看导入的状态。进入交互模式有两种方式,操作步骤如下:

i 使用Ctrl+C退出当前模式

ii 在命令行模式下,执行Expdp/Impdp命令,同时指定attach参数连接到当前正在制定的导入/导出任务。如:

expdp bam/bam attach=SYS_IMPORT_FULL_01

Warning:如果没有指定Attach参数,则默认进入当前正在运行的任务。不过如果当前没有正在指定的任务,而且也没有给Attach赋值,那么就会报

Ora-31626错误。

当命令行进入交互模式后,会显示如下界面:

Export>

7) 交互模式的操作

在交互模式中,支持下面几种操作。

i 查看JOB的运行状态

Export> status

ii 回退到命令行

Export> continue_client

iii 增加并行

Export> parallel=4

Warning: 在使用导出时,不能直接指定parallel参数,否则可能会遇到ORA-39095错误,因为如果要并行导出,则必须指定多个导出文件,这里的并行导出是指,多个线程同时工作,同时从数据库中导出多个dmp文件来。

在Oracle Database Utilities中有如下解释:

Because each active worker process or I/O server process writes exclusively to one file at a time, an insufficient number of files can have adverse effects. Some of the worker processes will be idle while waiting for files, thereby degrading the overall performance of the job. More importantly, if any member of a cooperating group of parallel I/O server processes cannot obtain a file for output, then the export operation will be stopped with an ORA-39095 error. Both situations can be corrected by attaching to the job using the Data Pump Export utility, adding more files using the ADD_FILE command while in interactive mode, and in the case of a stopped job, restarting the job.

You can supply multiple file_name specifications as a comma-delimited list or in separate DUMPFILE parameter specifications. If no extension is given for the filename, then Export uses the default file extension of .dmp. The filenames can contain a substitution variable (%U), which implies that multiple files may be generated. The substitution variable is expanded in the resulting filenames into a 2-digit, fixed-width, incrementing integer starting at 01 and ending at 99. If a file specification contains two substitution variables, both are incremented at the same time. For example, exp%Uaa%U.dmp would resolve to

exp01aa01.dmp, exp02aa02.dmp, and so forth.

iv 停止JOB

Export> stop_job

v 启动JOB

Export> start_job

vi 杀掉JOB

Export> kill_job

vii 退出交互模式

Export> exit_client

viii 指定文件大小

Export> filesize=1G

ix 帮助

Export> Help

十一、EXPDP介绍

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

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

ESTIMATE={BLOCKS | STATISTICS}

设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为 STATISTICS时,根据最近统计值估算对象占

用空间

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

6. ESTIMATE_ONLY

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

EXTIMATE_ONLY={Y | N}

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

Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

7. EXCLUDE

(具体见2、Exclude导出用户中指定类型的指定对象)

该选项用于指定执行操作时释放要排除对象类型或相关对象

EXCLUDE=object_type[:name_clau se] [,….]

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

(具体见1、Include导出用户中指定类型的指定对象)

指定导出时要包含的对象类型及相关对象

INCLUDE = object_type[:name_clause] [,… ]

14. JOB_NAME

指定要导出作用的名称,默认为SYS_XXX

JOB_NAME=jobname_string

SELECT * FROM DBA_DATAPUMP_JOBS;--查看存在的job

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 gwm/gwm directory=dir_dp NETWORK_LINK=igisdb

tables=p_street_area dumpfile =p_street_area.dmp

logfile=p_street_area.log job_name=my_job

igisdb是目的数据库与源数据的链接名,

dir_dp是目的数据库上的目录

而如果直接用使用连接字符串(@fgisdb),expdp属于服务端工具,expdp 生成的文件默认是存放在服务端的

17. NOLOGFILE

该选项用于指定禁止生成导出日志文件,默认值为N.

18. PARALLEL

指定执行导出操作的并行进程个数,默认值为1

注:并行度设置不应该超过CPU数的2倍,如果cpu为2个,可将PARALLEL 设为2,在导入时速度比PARALLEL为1要快

而对于导出的文件,如果PARALLEL设为2,导出文件只有一个,导出速度提高不多,因为导出都是到同一个文件,会争抢资源。所以可以设置导出文件为两个,如下所示:

expdp gwm/gwm directory=d_test dumpfile=gwmfile1.dp,gwmfile2.dp parallel=2

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 dumpfile=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

十二、数据泵工具导出的步骤

1、创建DIRECTORY

create directory dir_dp as 'D:\oracle\dir_dp';

2、授权

Grant read,write on directory dir_dp to lttfm;

--查看目录及权限

SELECT privilege, directory_name, DIRECTORY_PATH FROM

user_tab_privs t, all_directories d

WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;

3、执行导出

expdp lttfm/lttfm@fgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1 With the Partitioning, OLAP and Data Mining options

Centos7.6下oracle impdp导入和expdp导出

Centos7.6下Oracle11g数据泵导入导出 一、准备工作: 1、第一步:在服务器上创建真实的目录 [oracle@centos7 ~]$ su Password: [root@centos7 oracle]# mkdir -p /db_backup/dpump_dir [root@centos7 oracle]# cd /db_backup/dpump_dir [root@centos7 db_backup]# ls db_backup [root@centos7 data]# chmod -R 777 /db_backup/dpump_dir chown -R oracle:oinstall /db_backup/dpump_dir 2、第二步:用sys管理员登录sqlplus; [oracle@centos7 ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 5 19:03:39 2020 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> conn sys/manager as sysdba Connected. SQL> startup 启动监听: [oracle@centos7 ~]$ lsnrctl start

3、第三步:创建逻辑目录; SQL> conn sys/manager as sysdba Connected. SQL> create directory dpump_dir as '/db_backup/dpump_dir'; Directory created. 4、第四步:查看管理员目录,检查是否存在; SQL> select * from dba_directories where directory_name = 'DPUMP_DIR'; OWNER ------------------------------------------------------------ DIRECTORY_NAME ------------------------------------------------------------ DIRECTORY_PATH -------------------------------------------------------------------------------- SYS

教你如何使用expdp和impdp备份和恢复数据库

教你如何使用expdp和impdp命令备份和恢复Oracle数据库

create directory aa as 'D:\aa'; grant read,write on directory aa to king2; expdp king2/king2test02 schemas=king2 directory=aa dumpfile=expuser.dmp 第一步:创建一个目录(也就是文件路径)来装导出的dmp文件 方法:操作系统—开始—运行输入“cmd”进入dos界面输入“sqlplus/nolog”按回车如下图: 连接数据库,输入:conn sys/king2test02 as sysdba(注意sys用户一定要用sysdba角色登录哦) 回车如下图:

接着,创建DIRECTORY create directory dir_dp as 'D:\oracle\dir_dp'; 这里要注意,路径D:\oracle\dir_dp一定要是系统已经存在的了,如果该路径不存在,下边的导出将会提示 正确创建了路径的显示如下:

第二步:授权(授予要导入数据的用户对该目录(路径)进行读和写的权限),还是在连接数据库的状态下输入: Grant read,write on directory dir_dp to lttfm; 如下图:

就完成了,关闭窗口,重新进入dos界面就可以进行备份了; 第三步:执行导出 expdp lttfm/lttfmfgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log; 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1 With the Partitioning, OLAP and Data Mining options 启动"LTTFM"."SYS_EXPORT_SCHEMA_01": lttfm/********fgisdb sch ory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log; */ 备注: 1、directory=dir_dp必须放在前面,如果将其放置最后,会提示ORA-39002: 操作无效 ORA-39070: 无法打开日志文件。 ORA-39087: 目录名DATA_PUMP_DIR; 无效2、在导出过程中,DATA DUMP 创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATA DUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB 名字就为以指定名字出现 如下改成: expdp lttfm/lttfmfgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1; 3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。因此导致expdp lttfm/lttfm attach=lttfm.my_job1执行该命令时一直提示找不到job表

oracle使用数据泵导出和导入

使用数据泵导出和导入 几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data Pump Export and Import)实用程序导出和导入数据。 以前的导出和导入实用程序在oracle database 11g中仍然可以使用,但是Oracle强烈建议使用数据泵(Data Pump)技术,因为它提供了更多的高级特性。例如,你可以中断导出/导入作业,然后恢复它们;可以重新启动已失败的导出和导入作业;可以重映射对象属性以修改对象;可以容易地从另一个会话中监控数据泵的作业,甚至可以在作业过程中修改其属性;使用并行技术很容易快速移动大量的数据;因为oracle提供了针对数据泵技术的API,所以可以容易地在PL/SQL 程序中包含导出/导入作业;可以使用更强大的可移植表空间特性来快速移植大量的数据,甚至可在不同操作系统平台之间移动。 与旧的导出和导入实用程序不同,数据泵程序有一组可以在命令行中使用的参数以及一组只能以交互方式使用的特殊命令,你可以通过在命令行中输入expdp help = y 或者impdp help = y快速获取所有数据泵参数及命令的概述。 一.数据泵技术的优点 原有的导出和导入技术基于客户机,而数据泵技术基于服务器。默认所有的转储,日志和其他文件都建立在服务器上。以下是数据泵技术的主要优点: 1.改进了性能 2.重新启动作业的能力 3.并行执行的能力 4.关联运行作业的能力 5.估算空间需求的能力 6.操作的网格方式 7.细粒度数据导入功能 8.重映射能力 二.数据泵导出和导入的用途 1.将数据从开发环境转到测试环境或产品环境 2.在不同的操作系统平台上的oracle数据库直接的传递数据 3.在修改重要表之前进行备份 4.备份数据库 5.把数据库对象从一个表空间移动到另一个表空间 6.在数据库直接移植表空间 7.提取表或其他对象的DDL 注意:数据库不建立完备的备份,因为在导出文件中没有灾难发生时的最新数据。但是对于较小的数据库和个别的表空间的导出,数据导出仍然是一个可行的备份工具。 三.数据泵的组成部分

实例:使用expdpimpdp导入导出数据库

实例:使用expdp/impdp导入导出数据库 1.创建数据导出权限的目录 (注意oracle用户一定要有此目录的读写权限): SQL> create directory MY_DIR as '/home/dump'; 公司数据库都已经创建了对应的DIR目录,不建议继续创建新的,如有疑问可以联系我: 可以使用以下命令查看数据库中是否存在DIR目录 SQL> col DIRECTORY_PATH for a50; SQL> set linesize 150; SQL> select * from dba_directories; 查看目录及权限 --查看目录及权限 SQL> SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1; 2.给该数据导出用户授予该目录的读写权限 SQL> grant read,write on DIRECTORY MY_DIR to user_name; (其中user_name为用户名称,本示例中user_name为zdyw2) 即: SQL> grant read,write on DIRECTORY MY_DIR to zdyw2; 3.使用expdp导出源数据库 expdp zdyw2/zdyw185test2 schemas=zdyw2 DIRECTORY=dir CONTENT=all DUMPFILE=zdywyf20121109_2.dmp logfile=zdywyf_exp20121109_2.log 其中: 1、zdyw2为导出数据库的用户,zdyw185test2为导出数据库的密码; 2、schemas为导出的用户的schemas,普通请款下为该用户名称; 3、Direcotry,DIR为导出文件的存放目录,此目录需要zdyw2有对应的操作权限, 4、zdywyf20121109_2.dmp为导出的文件名称,

expdp@impdp用法详解

一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。create directory dpdata1 as 'd:\test\dump'; 二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错) select * from dba_directories; 三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。 grant read,write on directory dpdata1 to scott; 四、导出数据 1)按用户导 expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1; 2)并行进程parallel expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3 3)按表名导 expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1; 4)按查询条件导 expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE dep tno=20'; 5)按表空间导 expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=te mp,example; 6)导整个数据库 expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y; 五、还原数据 1)导到指定用户下 impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott; 2)改变表的owner impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept RE MAP_SCHEMA=scott:system; 3)导入表空间 impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=ex ample; 4)导入数据库 impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y; 5)追加数据 impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TA BLE_EXISTS_ACTION=append; ----------------------------Expdp/Impdp的相关参数---------------------------- EXPDP命令行选项 1. ATTACH 该选项用于在客户会话与已存在导出作用之间建立关联.语法如下

oracle 10g数据库expdp,impdp

Expdp与impdp使用 Expdp 1.创建目录 Create or replace directory DIR_DP as'/orabak'; 1)可以使用system 创建; 2)Aix下的oracle用户需要对相应的目录具备读写的权限; 3)嘉兴使用的是orabak路径;本地路径为导出数据库所在目录,例”e:\orabak”; 2.赋予权限; Grant Read, Write on directory DIR_DP to jxcz; 1)使用system用户赋权; 2)确认是否有权限: select * from dba_directories where DIRECTORY_NAME = 'DIR_DP'; 3.通过shell,以oracle登录: 直接执行命令: Expdp jxcz/ufgov1234 DIRECTORY=dir_dp DUMPFILE=jxcz.dmp EXCLUDE=TABLE:\"IN \(\'BA_RECEIVE_SS_CZ613_BODY\',\'SS_TO_BANK_DATA\',\'SS_TRANS_R ECORD\',\'BA_RECEIVE_RECORD_XML\',\'BA_SEND_RECORD_XML\',\'NT_B ILL\',\'NT_BILL_ITEM\',\'NT_JB_HX_PJMX_LOG\',\'NT_DATA_DEL_LOG\ ',\'NT_JB_HX_PJQD_LOG\',\'FA_CARD_MO\',\'FA_CARD\',\'AS_FILE\', \'AS_LOG\'\)\" expdp jxcz/ufgov2012 DIRECTORY=dir_dp DUMPFILE=jxcz1210.dmp EXCLUDE=TABLE:\"IN\(\'BA_RECEIVE_SS_CZ613_BODY\', \'BANK_TRADE_LOG\',\'GK_JXCZ_ZH_ZCCX\',\'NT_JXCZ_COMPANY_NJZCB\ ',\' AS_LOG \',\' CP_VOUCHER \',\'SS_TO_BANK_DATA\',\'SS_TRANS_RECORD\',\'BA_RECEIVE_RECORD_ XML\',\'BA_SEND_RECORD_XML\',\'NT_BILL\',\'NT_BILL_ITEM\',\'NT_ JB_HX_PJMX_LOG\',\'NT_DATA_DEL_LOG\',\'NT_JB_HX_PJQD_LOG\',\'FA _CARD_MO\',\'FA_CARD\',\'AS_FILE\'\)\" 1)Expdp中的e必须小写; 2)EXCLUDE需要全部大写; 3)Aix需要使用”\”,windows 不需要; 4)注意修改dmp文件; 5)命令把平常比较大的几张物理表排除了,如果需要个别的物理表,请自行删除去除的语句; 注:(1)以上几张表目前占了嘉兴数据库的80%的空间(2)删除时请注意EXCLUDE 的语法,出错往往是里面的值有错了。 6)查询占用空间比较大的表语句为: Select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments t

ORACLE EXPDP命令使用详细

ORACLE EXPDP命令使用详细 1. DIRECTORY 指定转储文件和日志文件所在的目录 DIRECTORY=directory_object Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS目录 Expdp scott/tiger DIRECTORY= DMP DUMPFILE=a.dump Sql>create or replace directory dmp as 'd:/dmp' expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=metadata_only 2. CONTENT 该选项用于指定要导出的内容.默认值为ALL CONTENT={ALL | DATA_ONLY | METADATA_ONLY} 当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY 时,只导出对象数据,为METADATA_ONLY时,只导出对象定义 expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=metadata_only ----------只导出对象定义 expdp zftang/zftang@zftang directory=dmp dumpfile=test.dmp content=data_only ----------导出出所有数据 3. DUMPFILE DUMPFILE用于指定转储文件的名称,默认名称为expdat.dmp DUMPFILE=[directory_object:]file_name [,….]

expdp impdp使用总结

expdp/impdp 使用总结 expdp/impdp 使用总结 1.使用expdp要先在数据库中创建directory,并给相应的用户read,write权限. SQL>create directory dmpdir as '/u01/dmdir'; SQL>grant read,write on directory to test; 2.最常用导出方法 $expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=test $expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY=dmpdir TABLES=(tmp_test:p1,tmp_test:p2) JOB_NAME=tmp_dump LOGFILE=tmp_dump.log $expdp scott/tiger DUMPFILE=full.dmp DIRECTORY=dmpdir FULL=Y JOB_NAME=full $expdp scott/timer DUMPFILE=tmp_200703.dmp DIRECTORY=dmpdir TABLES=tmp QUERY=\"where to_char\(create_time,\'yyyy-mm-dd\'\)\<\'2007-04\'\" 常用一些参数说明: SCOTT/TIGER:用户/密码(*) DUMPFILE:导出后的文件名(*) DIRECTORY:导出文件存放位置(位于服务器端)(*) CONTENT:导出文件中包含的内容(默认为:ALL,可选DATA_ONLY/METADATA_ONLY) FILESIZE:指定导出文件大小(单位为bytes). JOB_NAME:此次导出进程使用的名称,方便跟踪查询(可选) LOGFILE:日志文件名(默认为:export.log) INCLUDE:导出时包含指定的类型 (例:INCLUDE=TABLE_DATA, INCLUDE=TABLE:"LIKE 'TAB%'" INCLUDE=TABLE:”NOT LIKE …TAB%?”…) EXCLUDE:导出时排除的数据类型(例:EXCLUDE=TABLE:EMP) FULL:全库导出时使用(同EXP的FULL,默认为N) SCHEMA:导出某一个SCHEMA下的所有数据 TABLES:按表导出(这里的方法和EXP一样) TABLESPACE:指定一个表空间导出. QUERY:按表导出时,使用条件语句限定导出范围(同exp中的QUERY)

oracle数据备份之expdpimpdp

oracle数据备份之expdp/impdp (2011-03-03 17:04) 标签: oracle数据库空间分类:oracle ORCALE10G提供了新的导入导出工具,数据泵。 Oracle官方对此的形容是:OracleDataPump technology enables Very High-Speed movement of data and metadata from one database to another.其中Very High-Speed是亮点。 先说数据泵提供的主要特性(包括,但不限于): 1. 支持并行处理导入、导出任务 2. 支持暂停和重启动导入、导出任务 3. 支持通过Database Link的方式导出或导入远端数据库中的对象 4. 支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、数据文件或数据所在表空间。 5. 导入/导出时提供了非常细粒度的对象控制。通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象。 Warning: 1. 什么是Directory对象 Directory对象是Oracle10g版本提供的一个新功能。他是一个指向,指向了操作系统中的一个路径。每个Directory都包含 Read,Write两个权限,可以通过Grant命令授权给指定的用户或角色。拥有读写权限的用户就可以读写该Directory对象指定的操作系统路径下的文件。 2. 无论在什么地方使用expdp,生成的文件最终页是在服务器上(Directory指定的位置) 如何调用 1. 命令行方式 最简单的调用,但是写的参数有限,建议使用参数文件的方式。 2. 参数文件方式 最常用的方式。通常需要先编写一个参数文件。指定导出时需要的各种参数。然后以如下方式调用。 expdp user/pwdparfile=xxx.par 这个xxx.par即是我们编辑的参数文件。注意,在这个命令行后面,同样可以再跟别的参数,甚至是在par参数文件中指定过的参数。如果执行命令中附加的参数与参数文件中的参数有重复,最终采用哪个参数,会以参数最后出现的位置而定。如:expdp user/pwdparfile=xxx.par logfile=a.log,如果在参数文件中也指定了logfile,这里会以命令行中的logfile为准;如:expdp user/pwd logfile=a.log parfile=xxx.par,而这个,则会以参数文件中的为准,因为parfile=xxx.par写在命令行的后面。

[原创]Oracle数据导入导出(另exp和expdp对比)

本文包含exp/imp,expdp/impdp的使用说明和常用参数详解 另外包括一个有趣的测试 一、Oracle数据库EXP\IMP\EXPDP\IMPDP使用说明1.Exp数据导出 1.1.exp关键字说明 关键字说明(默认值) ------------------------------ USERID 用户名/口令 BUFFER 数据缓冲区大小 FILE 输出文件(EXPDAT.DMP) COMPRESS 导入到一个区(Y) GRANTS 导出权限(Y) INDEXES 导出索引(Y) DIRECT 直接路径(N) --直接导出速度较快 LOG 屏幕输出的日志文件 ROWS 导出数据行(Y) CONSISTENT 交叉表的一致性(N) FULL 导出整个文件(N) OWNER 所有者用户名列表 TABLES 表名列表 RECORDLENGTH IO记录的长度 INCTYPE 增量导出类型 RECORD 跟踪增量导出(Y) TRIGGERS 导出触发器(Y) STATISTICS 分析对象(ESTIMATE) PARFILE 参数文件名 CONSTRAINTS 导出的约束条件(Y) OBJECT_CONSISTENT 只在对象导出期间设置为只读的事务处理(N) FEEDBACK 每x 行显示进度(0) FILESIZE 每个转储文件的最大大小 FLASHBACK_SCN 用于将会话快照设置回以前状态的SCN FLASHBACK_TIME 用于获取最接近指定时间的SCN 的时间 QUERY 用于导出表的子集的select 子句 RESUMABLE 遇到与空格相关的错误时挂起(N) RESUMABLE_NAME 用于标识可恢复语句的文本字符串 RESUMABLE_TIMEOUT RESUMABLE 的等待时间 TTS_FULL_CHECK 对TTS 执行完整或部分相关性检查 TABLESPACES 要导出的表空间列表

数据泵expdp&impdp

数据泵EXPDP 导出工具的使用 分类:Oracle Datapump2010-10-07 18:10 8378人阅读评论(7) 收藏举报工具oracleprocessingobjectstatistics --================================= --数据泵 EXPDP 导出工具的使用 --================================= 对于Oracle 数据库之间的导入导出,可以使用Oracle提供的导入导出工具EXP/IMP来实现。EXP/IMP是Oracle早期提供的数据导入导出工具。在Oracle 10g 中,提供了高速导入导出数据泵IMPDP,EXPDP,本文主要讲述EXPDP的用法。 关于IMPDP的用法,请参照:数据泵IMPDP 导入工具的使用 一、数据泵的体系结构 数据泵是一个基于服务器端的高速导入导出工具,通过dbms_datapump包来调用 提供expdp,impdp,以及基于Web页面来实现导入导出 提供两种数据数据方式方式:直接路径、外部表 可以定制数据泵作业,以及从作业中分离和重新附加到作业 服务器端的数据泵是直接访问数据文件与SGA,不必通过会话进行访问 数据泵进程 对Unix系统而言,数据泵进程为expdp,impdp 对Windows系统而言,数据泵进程为expdp.exe,impdp.exe 启动一个DataPump作业,至少会启动下列两个进程,一个Data Pump Master(DMnn),一个或多个工作进程(DWnn),主进程控制工作进程 如果多个DataPump作业同时运行,那么每个作业都具有自己的DMnn进程以及自己的DWnn进程 如果设置了并行技术,则每个DWnn进程可以使用两个或多个并行执行服务器(名称为Pnnn) DataPump生成下列三种形式的文件 SQL文件:描述指定作业所包含对象的若干DDL语句 转储文件:即包含数据和元数据的文件 日志文件:用于记录导出时的相关信息 目录

使用expdp以及impdp导入导出数据库

使用数据泵备分恢复数据库 特别注意: 以下介绍的EXPDP、IMPDP命令最后面不允许使用分号“;”结尾否则命令会报错 使用expdp以及impdp导入导出数据库用户的效率比exp、imp要快很多,下面介绍具体的操作方式: 一、创建备份目录并授权 注意,备份目录是指服务器上的目录,需要首先在相应的目录上创建目录,且创建以及指向的目录所在的盘符要具备相应的空间。 C:\sqlplus user/password@orcl SQL> create directory databf as 'd:\oracle\bf'; 创建备份或者导出时指向的目录 目录已创建。 SQL> grant read, write on directory databf to nc57; 授权成功。 二、备份导出 expdp nc57/nc57@orcl DIRECTORY=databf DUMPFILE=nc57.dmp logfile=expnc57.log SCHEMAS=nc57,nc56 上述命令导出了两个用户:NC57、NC56 二、备份的数据的恢复 注意:由于备份的数据是在服务器上的,所以如果要恢复到其他机器上,需要先把备份的数据拷贝到目标服务器上。 同样需要先指定备份的目录: C:\sqlplus user/password@orcl SQL> create directory databf as 'd:\oracle\bf'; 创建备份或者导出时指向的目录 目录已创建。 备份之前首先要创建用户,然后授权:

grant read,write on directory databf to nc57; 成功。 D:\oracle\bf>impdp nc57/1@orcl directory=databf dumpfile=nc5710131220.dmp remap_schema=nc57:nc571 上述命令把原导出的用户nc57导入到用户nc571中 导入时使用exclude=table_statistics 可以避免导入table_statistics出现问题 样例: expdp system/sys@orcl92 directory=databf dumpfile=nc57_zzyxwt.dmp logfile=expzzyx.log schemas=nc57px exclude=table:\"like\'H%\'\" exclude=table:\"like\'WA%\'\" exclude=table:\"like\'RM_%\'\" exclude=table:\"like\'FA%\'\" exclude=table_statistics query='WHERE deptno=20' expdp system/sys@orcl92 directory=databf dumpfile=nc57_zzyxwt1.dmp logfile=expzzyx1.log schemas=nc57px exclude=table:\"not like\'BD_PSNBASDO%\'\" exclude=table_statistics impdp system/sys@orcl92 directory=databf dumpfile=nc57_zzyxwt.dmp logfile=impzzyx.log remap_schema=nc57px:test exclude=table:\"like\'NTB%\'\" 详细说明: 数据泵文件 expdp介绍 EXPDP命令行选项 1. ATTACH 该选项用于在客户会话与已存在导出作用之间建立关联.语法如下 ATTACH=[schema_name.]job_name Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTAC H选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下: Expdp scott/tiger ATTACH=scott.export_job 2. CONTENT 该选项用于指定要导出的内容.默认值为ALL CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

数据泵导入导出详解

数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍。速度的提高源于使用了并行技术来读写导出转储文件。 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 $ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.par expdp.par内容: DIRECTORY=dir_dump DUMPFILE=scott_full.dmp LOGFILE=scott_full.log --其他账号登陆, 在参数中指定schemas $ expdp system/oracle@db_esuiteparfile=/orahome/expdp.par expdp.par内容: DIRECTORY=dir_dump DUMPFILE=scott_full.dmp

LOGFILE=scott_full.log SCHEMAS=SCOTT 2) 导出scott下的dept,emp表 $ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.par expdp.par内容: DIRECTORY=dir_dump DUMPFILE=scott.dmp LOGFILE=scott.log TABLES=DEPT,EMP 3) 导出scott下除emp之外的表 $ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.par expdp.par内容: DIRECTORY=dir_dump DUMPFILE=scott.dmp LOGFILE=scott.log EXCLUDE=TABLE:"='EMP'" 4) 导出scott下的存储过程 $ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.par expdp.par内容: DIRECTORY=dir_dump DUMPFILE=scott.dmp

expdp 和impdp的笔记

expdp 和impdp的笔记 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中. 数据泵导出导入(EXPDP和IMPDP)的作用 1,实现逻辑备份和逻辑恢复. 2,在数据库用户之间移动对象. 3,在数据库之间移动对象 4,实现表空间搬移. 数据泵导出导入与传统导出导入的区别 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP 和IMPDP时应该注意的事项; EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用 IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式. expdp选项 1):ATTACH不能与其他选项一起使用 2):CONTENT要导出的内容默认值ALL DATA_ONLY METADATA_ONLY 3):DIRECTORY 指定转储文件和日志文件的所在地 DIRECTORY=directory_object数据库目录对象) expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp 4):DUMPFILE指定转储文件的名称,默认为expdata.dmp 5):ESTIMAT选项用于估算导出表所占的空间 expdp scott/tiger TABLE=emp ESTIMAT=STATISTICS|BLOCKS 6):ESTIMATE_ONLY改选项只是估算导出对象所占的空间,默认值为Y 7):EXCLUDE执行导出操作时要排除的对象或相关对象,与INCLUDE选项不能一起使用 expdp scott/tiger DIRECTORY=dump DUMPFILE=A.DMP EXCLUDE=view 8):FILESIZE导出文件的最大尺寸,默认值为0(没有限制)

Oracle 11G R2 用exp无法导出空表解决方法及expdp和impdp的用法

Oracle 11G R2 用exp无法导出空表解决方法Oracle 11G在用EXPORT导出时,空表不能导出 11G R2中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 一、insert一行,再rollback就产生segment了。 该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。 二、设置deferred_segment_creation 参数 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。修改SQL语句: alter system set deferred_segment_creation=false scope=both; 需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。 三、用以下这句查找空表 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表, 注意:数据库插入数据前,修改11g_R2参数可以导出空表 查找空表 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 四、Oracle 10g以后增加了expdp和impdp工具,用此 工具也可以导出空的表 oracle expdp/impdp 用法详解 1)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等 管理员创建。 create directory db_bak as 'd:\test\dump';

expdp参数详解

expdp 1.attach 用于在客户会话与已存在的作业建立联系 attach=[schema_name.]job_name 查看job_name :SELECT * FROM DBA_DATAPUMP_JOBS https://www.doczj.com/doc/95336312.html,pression 11g 用于指定导出时要压缩的数据,默认metadata_only compression={all| data_only |metadata_only | none} all 压缩元数据和对象数据data_only 只压缩对象数据metadata_only 只压缩元数据none 不压缩任何数据 3.content 指定要导出的内容,默认all content={all | data_only | metadata_only } all 对象结够及数据data_only 表示导出数据metadata_only 只导出对象结构 4.data_options 11g 用于为某些类型的数据提供选项11g xnl_clobs 5.directory 指定转储文件的目录 directory=directory_object 6.dumpfile 指定转储文件的名称 dumpfile=[directory_object:]file_name[,.....] 7.encryption 是否加密导出数据默认none encryption={all | data_only |metadata_only | encrypted_columns_only | none} all 对象和元数据d ata_only 对象加密metadata_only 元数据加密encryption_columns_only 只加密加密列none 不加密 8.encryption_algorithm 加密算法默认aes128 encryption_algorithm= {aes128 | aes 192 | aes 256} 9.encryption_mode 加密和解密所使用的安全类型 encryption_mode={dual | password |transparent } dual 表示用oracle wallet 或指定口令建立导出文件password 指定口令建立导出文件transparent oracle wallet建立导出文件 10.encryption_password 指定加密和解密口令encryption_password=password 11.estimate 估计被导出表所占用的磁盘空间的方法默认:blocks estimate={blocks |statistics} blocks 安照目标对象所占用的数据块个数乘以数据块的尺寸估计对象占用的空间,statics 安装最近的统计值估算对象占用的表空间

Oracle 数据泵详解

Oracle 数据泵详解 一、EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2)在数据库用户之间移动对象. 3)在数据库之间移动对象 4)实现表空间搬移. 二、数据泵导出导入与传统导出导入的区别 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项: 1)EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。 2)EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

3)IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。 数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.三、Expdp参数 EXPDP命令行选项,可通过expdp help=y查看: E:\emp>expdp help=y Export: Release 10.2.0.1.0- Production on 星期日, 03 5月, 2009 17:54:49 Copyright (c) 2003, 2005, Oracle. All rights reserved. 数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输 数据对象的机制。该实用程序可以使用以下命令进行调用: 示例: expdp scott/tigerDIRECTORY=dmpdir DUMPFILE=scott.dmp 您可以控制导出的运行方式。具体方法是: 在 'expdp' 命令后输入 各种参数。要指定各参数, 请使用关键字: 格式: expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

相关主题
文本预览
相关文档 最新文档