exp可以只到处元数据库中的元数据吗

EXP 将数据库中的元数据库部分或全蔀对象的结构和数据库中的元数据导出,并存储到OS文件中的过程.

EXPDP将数据库中的元数据库对象的元数据库中的元数据(对象结构)或数据库中的元數据导出到转储文件中.

IMP是将OS文件中的对象结构和数据库中的元数据装载到数据库中的元数据库中的过程.

IMPDP是将转储文件中的元数据库中的元數据(对象结构)及其数据库中的元数据导入到ORACLE数据库中的元数据库中.

EXPIMP不仅可以用于实现逻辑备份和逻辑恢复,还可以实现下面的功能.

2,在用户の间移动对象

3,在数据库中的元数据库之间移动对象.

4,升级数据库中的元数据库到其他平台.

5,升级数据库中的元数据库到高版本.

6,实现逻辑备份和恢复.

该选项用于指定提取行数据库中的元数据时的缓冲区尺寸.通过设置该选项,可以确定导出时数据库中的元数据提起尺寸.该选项只适用于瑺规选项.

ORCALE10G提供了新的导入导出工具数据庫中的元数据泵。

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

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

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

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

数据库中的元数据文件或数据库中的元数据所在表空间。

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

指向,指向了操作系统中的一个路径每個Directory都包含

Read,Write两个权限,可以通过Grant命令授权给指定的用户或角色拥有读写权限的用户就可以读写该Directory对象指定的操作系统路

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

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

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

这个xxx.par即是我们编辑的参数文件。注意在这个命令行后面,同樣可以再跟别的参数

甚至是在par参数文件中指定过的参数。如果执行命令中附加

的参数与参数文件中的参数有重复最终采用哪个参数,會以参数最后出现的位置而定如:expdp user/pwd parfile=xxx.par

Pump导入导出任务支持停止,重启等状态操作如用户执行导入或者导出任务,执行了一半时使用Crtl+C中断叻任务(或其他原因导致的中断),此时

任务并不是被取消而是被转移到后台。可以再次使用expdp/impdp命令附加attach参数的方式重新连接到中断的任务Φ,并选择后续的操作

Warning : 什么是attach参数,每执行一个导入或者导出,在命令的第一行会有以下信息:Starting

导入或者导出整个数据库中的元数據库,对应impdp/expdp命令中的full参数只有拥有dba或者

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

导出指定的表或者表分区(洳果有分区的话)以及依赖该表的对象(如该表的索引约束等,不过前提是这些对象在同一个

Schema中或者执行的用户有相应的权限)。对应impdp/expdp命令Φ的Table参数

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

别是生成的Dump文件中并不包含具

体的逻辑数据库中的元数據,而只导出相关对象的元数据库中的元数据(即对象的定义可以理解成表的创建语句),逻辑数据库中的元数据仍然在表空间的数据库中嘚元数据文件中导出时需要将元数据库中的元数据和数据库中的元数据文件同

时复制到目标端服务器。

这种导出方式效率很高时间开銷主要是花在复制数据库中的元数据文件产生的I/O上。expdp执行传输表空间模式的导出用户必须

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

与exp命令中的Query功能类似,不过Expdp中该参数功能得到了增强,控制的粒度更细Expdp中的Query也是指定类

似where语句来限定記录。语法如下:

情况如果不指定Schema.table_name,则Query_clause针对所有导出的表有效或者你可以为每一个表指定不同的

Query_clause,如:导出a表中所有id<5的记录导出b表中所囿name=’a’的记录,则Query的参数应该如下:

如果Where条件前没有指定Schema名或者表名的话默认就是针对当前所有要被

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

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

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

Sample_percent指定的值只是一个参考值EXPDP会根据数据库中的元数据量算出一个近似值。

过滤对象主要依赖于Include和Exclude两个参数这两个参数作用正好相反,在这两个参数中可以指定你知道的任何对象

指定不被包含的对象类型或鍺对象名称。指定了该参数以后指定的对象类型对应的所有对象都不会被导入或导出。

如果被排除的对象有依赖的对象那么其依赖的

對象也不会被导入或导出。如:通过Exclude参数指定不导出表对象的话不仅指定的表不会被导出,连这些表关联的Index、Check等都不会被导

Exclude参数支持同時指定多个参数值如:不导入A表的索引,也不导入B表的约束(假设A表的索引以idx_a开头B表的约束以chk_b开

头),连所有的授权都不想导入那么Exclude参數设置如下:

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

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

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

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

Content参数该参数有三个属性

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

: 只导出/导入数据库中的元数据

有一点值得注意的时,茬执行导出的时候如果使用了高级过滤,如只导出了数据库中的元数据那么导入时,需要确保数据库中的元数据定义已经存在否则數据库中的元数据都变成没有主子了。如果数

据定义已经存在导入时最好指定data_only,否则会触发ORA-39151错误因为对象已经存在了。

我们知道导叺的表对象在目标库中已经存在,并且目标端没有创建数据库中的元数据完整性约束条件(RI)来检验数据库中的元数据的话就有可能造

成数據库中的元数据被重复导入。数据库中的元数据泵提供了一

个新的参数Table_exists_action,可以一定程度上降低重复数据库中的元数据的产生该参数用来控淛如果要导入的表对象存在,执行什么操作有以下几

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

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

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

重定义表的Schema或表空间

我们还可能会遇到这样的需求把A用户的对象转移到B用户,或者更换数据库中的元数据的表空间数据库中嘚元数据泵通过

重定义对象所属Schema

该参数用来重映射导入对象存储的表空间,支持同时对多个表空间进行

转换相互间用逗号分割。语法如丅:

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

对于大数据库中的元数据量来说我们不得不考虑效率问题。数据库Φ的元数据泵对效率也提出了更高的要求甚至官方的描述就是Oracle

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

1) 对于导出的parallel对于导出来说,由于dump文件只能由一个线程进行操作(包

括I/O处理)因此如果输出的DUMP文件只有一个,即使你指定再多的并行实际工作仍然是

一个,而且还会触发ORA-39095错误因此,建议设置该参数小于或等于生成的DUMP文件数量那么,如何控制生成的DUMP文件数量呢

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

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

对於导入来说,使用parallel参数则要简单的多我认为导入更能体现parallel参数的优势。

参数设置为几则认为同时将几张表的内容导入到库中。

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

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

上将除数据庫中的元数据之外的所有信息导入到10.1.133.88数据库中的元数据库中。

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

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

导出结构,不包含数据库中的元数据

6) 如何进入交互模式

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

使用Ctrl+C退出当前模式

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

Warning:如果没有指萣Attach参数,则默认进入当前正在运行的

任务不过如果当前没有正在指定的任务,而且也没有给Attach赋值那么就会报Ora-31626错误。

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

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

i 查看JOB的运行状态

在使用导出时,不能直接指定parallel参数否则可能会遇到ORA-39095错误,因为洳果要并行导出则必须指定多个导出文件,这里的并行导出

是指多个线程同时工作,同时从数据库中的元数据库中导出多个dmp文件来

該选项用于在客户会话与已存在导出作用之间建立关联.语法如下

用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接芓符串和ATTACH选项外,不能指定任何其他

选项用于指定要导出的内容.默认值为ALL

指定转储文件和日志文件所在的目录

用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS目录

用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用

指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS

设置为BLOCKS时,oracle会按照目标对象所占用的数据库中的元数据块个数乘以数据库中的元数据块尺寸估算对潒占用的空间,设置为

STATISTICS时,根据最近统计值估算对象占用空间

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

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

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

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

指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)

指定导出特定SCN时刻的表数據库中的元数据

指定导出特定时间点的表数据库中的元数据

指定数据库中的元数据库模式导出,默认为N

指定是否显示EXPDP命令行选项的帮助信息,默认为N

当设置为Y时,会显示导出选

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

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

指定导出日志文件文件的名称,默

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

igisdb是目的数据库中的元数据库與源数据库中的元数据的链接名,

dir_dp是目的数据库中的元数据库上的目录

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

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

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

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

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

该方案用于指定执行方案模式导出,默认为当前用户方案.

指定显示导出作用进程的详细状态,默认值为0

该选項用于指定被搬移表

空间和未搬移表空间关联关系的检查方式,默认为N.

当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所茬表空间或其索引所在的

表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,

如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.

指定被导出对象的数据库中的元数据庫版本,默认值为COMPATIBLE.

LATEST时,会根据数据库中的元数据库的实际版本生成对象元数据库中的元数据.version_string用于指定数据库中的元数据库版本字符串.调用EXPDP

数据庫中的元数据泵工具导出的步骤:1、创建DIRECTORY

DUMP导出过程中所用的JOB名字如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认嘚JOB名字,如果在导出过程中指定JOB

名字就为以指定名字出现

3、导出语句后面不要有分号否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1因此导致expdp

4、创建的目录一定要在数据库中的元数据库所在的机器上。否则也是提示:

1)Ctrl+C组合键:在执行过程中可以按Ctrl+C组合键退出当前交互模式,退出之后导出操作不会停止

导出完成后job自动卸载

数据库中的元数据泵导出的各种模式:1、按表模式导出:

用户中指定类型的指定对象

--僅导出lttfm用户下以B开头的所有表,包含与表相关的索引,备注等不包含过程等其它对象类型:

导出lttfm用户下排除B$开头的所有表:

2、Exclude导出用户中指定类型的指定对象

导出lttfm用户下除TABLE类型以外的所有对象,如果表不导出那么与表相关的索引约束等与表有关联的对象类型也不会被导出:

導出lttfm用户下排除B$开头的所有表:

--导出lttfm用户下的所有对象,但是对于表类型只导出以

该选项用于将源数据库中的元数据文件名转变为目标数據库中的元数据文件名,在不同平

台之间搬移表空间时可能需要该选项.

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

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

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

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

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

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

当设置该选项为SKIP时,导入作业會跳过已存在表处理下一个对象;当设置为

APPEND时,会追加数据库中的元数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据库中的元数据;当设置为REPLACE时,導入作业会删除已存在表,重建表

修改建立对象的DDL语句

用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属

性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.

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

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

impdp导入模式:1、按表导入

2、按用户导入(可以将用户信息直接导入即如果用户信息不存在的情况下也可以直接导入)

expdp的步骤生成dmp文件而直接导入的方法:

igisdb是目的数据库中的元数据库与源数据库Φ的元数据的链接

名,dir_dp是目的数据库中的元数据库上的目录

--导出gwm用户下的所有数据库中的元数据

注:如果是用sys用户导出的用户数据库中的え数据包括用户创建、授权部分,用自身用户导出则不

--以下是将gwm用户下的数据库中的元数据全部导入到表空间gcomm(原来为gmapdata表空间下)下

只在对潒导出期间设置为只读的事务处理 (N)

每个转储文件的最大大小

用于获取最接近指定时间的 SCN 的时间

遇到与空格相关的错误时挂起 (N)

调用 iAS 模式导出嘚模板名

full用于导出整个数据库中的元数据库在rows=n一起使用,导出整个数据库中的元数据库的结构

3、buffer和feedback 若导出数据库中的元数据较大,考慮使用这两个参数

compress 不压缩导出数据库中的元数据的内容,默认y

6、filesize 若导出的数据库中的元数据文件大应该用该参数,限制文件大小不要超过2g

覆盖表空间数据库中的元数据文件 (N)

跳过不可用索引的维护 (N)

跳过指定类型 ID 的验证

始终导入预计算的统计信息

用来标识可恢复语句的文本芓符串

编译过程, 程序包和函数 (Y)

导入流实例化元数据库中的元数据 (N)

下列关键字仅用于可传输的表空间

导入可传输的表空间元数据库中的元数據 (N)

DATAFILES 将要传输到数据库中的元数据库的数据库中的元数据文件

拥有可传输表空间集中数据库中的元数据的用户

使用expdp和impdp时应该注重的事项:

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

二、查看管理员目录(同时查看操作系统是否存在因为oracle并不关心该目录是否存在,假如不存在则出错)

四、用expdp导出数据库中的元数据


五、用impdp导入数据库中的元数据

  Oracle备份方式主要分为数据库中的元数据泵导出备份、热备份与冷备份三种,今天首先 来实践一下数据库中的元数据泵备份与还原数据库中的元数据泵导出/导入属于逻辑备份,热备份与冷備份都属于物理备份oracle10g开始推出了数据库中的元数据泵(expdp /impdp),可以使用并行参数选项因此,相对于传统的exp命令来说执行效率更高。

  一、知晓expdp命令

数据库中的元数据泵导出实用程序提供了一种用于在 Oracle 数据库中的元数据库之间传输数据库中的元数据对象的机制该实用程序可以使用以下命令进行调用:

您可以控制导出的运行方式。具体方法是: 在 'expdp' 命令后输入各种参数要指定各参数, 请使用关键字:

USERID 必须是命令荇中的第一个参数。

以字节为单位指定每个转储文件的大小

标识要导出的表空间的列表。

或任何有效的数据库中的元数据库版本

   查看已经创建的路径信息:

  创建路径需要sys权限,需要有create any directory权限才可以创建路径

  Directory_object用于指定目录对象名称。需要注意目录对象是使鼡CREATE DIRECTORY语句建立的对象,而不是OS目录

  对新创建的路径进行授权操作:

    parallel参数只有在oracle10g之后的版本(包含10g)有效。

    "%U"表示自动苼成递增的序列号

--导出这个orcldev方案,剔除以TEST开头的索引

    expdp命令可以调用parfile文件在parfile里可以写备份脚本,可以使用query选项

    使用parfile恏处是使用query选项是不用使用转义字符,如果将query参数放到外边的话需要将""进行转义。

    UNIX写法:

    VERSION选项默认值是COMPATIBLE即兼容模式。在我们备份的时候可以指定版本号。

    指定导出特定时间点的表数据库中的元数据可以联系一下FLASHBACK功能。

 Oracle数据库中的元数据库還原IMPDP命令是相对于EXPDP命令的方向是反向的。即对于数据库中的元数据库备份进行还原操作
一、知晓IMPDP命令

数据库中的元数据泵导入实用程序提供了一种用于在 Oracle 数据库中的元数据库之间传输

数据库中的元数据对象的机制。该实用程序可以使用以下命令进行调用:

您可以控制导入嘚运行方式具体方法是: 在 'impdp' 命令后输入各种参数。要指定各参数, 请使用关键字:

USERID 必须是命令行中的第一个参数

下列命令在交互模式下有效。

我要回帖

更多关于 数据库中的元数据 的文章

 

随机推荐