oracle数据备份之expdpimpdp
- 格式:docx
- 大小:30.23 KB
- 文档页数:10
expdp和impdp语句expdp和impdp是Oracle数据库中用于数据泵的导出和导入工具。
它们允许用户将数据和元数据从一个Oracle数据库导出到一个dump文件,然后将该文件导入到另一个Oracle数据库中。
expdp的常用语法如下:复制代码expdp userid=用户名/密码@数据库连接标识文件=数据泵导出文件的路径和名称 logfile=日志文件的路径和名称 dumpfile=dump文件的路径和名称full=yes/no schemas=schema_name[,schema_name]tables=table_name[,table_name] ...其中,userid是用户名和密码,用于连接到数据库;文件路径和名称指定了数据泵导出文件、日志文件和dump文件的路径和名称;full参数用于指定是否导出整个数据库;schemas参数用于指定要导出的模式;tables参数用于指定要导出的表。
impdp的常用语法如下:复制代码impdp userid=用户名/密码@数据库连接标识文件=数据泵导出文件的路径和名称 logfile=日志文件的路径和名称 dumpfile=dump文件的路径和名称full=yes/no schemas=schema_name[,schema_name]tables=table_name[,table_name] ...其中,userid是用户名和密码,用于连接到数据库;文件路径和名称指定了数据泵导出文件、日志文件和dump文件的路径和名称;full参数用于指定是否导入整个数据库;schemas参数用于指定要导入的模式;tables参数用于指定要导入的表。
需要注意的是,在使用expdp和impdp时,必须确保目标数据库已经创建了相应的表、视图、序列等对象,否则导入操作将会失败。
同时,在使用expdp和impdp 时,需要确保具有足够的权限,并且要遵守Oracle数据库的数据泵规范和最佳实践。
Expdp与impdp使用Expdp1.创建目录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.dmpEXCLUDE=TABLE:\"IN\(\'BA_RECEIVE_SS_CZ613_BODY\',\'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\',\'AS_LOG\'\)\"expdp jxcz/ufgov2012 DIRECTORY=dir_dp DUMPFILE=jxcz1210.dmpEXCLUDE=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 的语法,出错往往是里面的值有错了。
EXPDB_IMPDB导出数据库和导入数据库操作手册EXPDP/IMPDP导出导入操作手册1.介绍EXPDP/IMPDP 是 Oracle 数据库中提供的一种工具,用于导出和导入数据库中的数据和对象。
通过使用 EXPDP 可以将数据库中的指定数据表、视图、程序、触发器等对象导出到一个二进制文件中,而使用 IMPDP 可以将这个导出的文件再导入到一个新的数据库中。
2.环境设置在使用 EXPDP/IMPDP 前,需要进行一些环境设置。
首先,确保数据库已经以归档模式运行,并且存在一个有效的备份策略。
其次,确认当前用户具备使用 EXPDP/IMPDP 的权限,可以通过以下语句进行授权:```GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO username;```其中,`username` 是需要授权的用户名。
3.导出数据库要导出数据库,可以使用以下命令:```expdp username/passwordconnect_stringDIRECTORY=directory_name DUMP LOG```其中,`username` 是要导出数据的用户名,`password` 是该用户的密码,`connect_string` 是连接数据库的字符串,`directory_name` 是导出文件所在的目录,`dump` 是导出文件的名称,`log` 是导出日志文件的名称。
4.导入数据库要导入数据库,可以使用以下命令:```impdp username/passwordconnect_stringDIRECTORY=directory_name DUMP LOG```其中,`username` 是要导入数据的用户名,`password` 是该用户的密码,`connect_string` 是连接数据库的字符串,`directory_name` 是导入文件所在的目录,`dump` 是导入文件的名称,`log` 是导入日志文件的名称。
Oracle数据库文件中的导入\导出(imp/exp命令)Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
下面介绍的是导入导出的实例。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中exp system/manager@TEST file=d:daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)3 将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmptables=(inner_notify,notify_staff_relat)4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面加上compress=y 来实现。
数据的导入1 将D:daochu.dmp 中的数据导入TEST数据库中。
oracle数据库全库备份语句Oracle数据库是一种关系型数据库管理系统,它可以用于存储和管理大量的结构化数据。
在进行数据库管理时,备份是非常重要的一项工作,它可以保护数据库免受数据丢失和系统故障的影响。
下面列举了十个Oracle数据库全库备份的语句,以供参考。
1. 使用RMAN进行全库备份:RMAN是Oracle提供的备份和恢复工具,可以通过以下命令进行全库备份:```RMAN> BACKUP DATABASE;```2. 使用EXPDP进行全库逻辑备份:EXPDP是Oracle提供的逻辑备份工具,可以通过以下命令进行全库备份:```expdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y; ```3. 使用IMPDP进行全库逻辑恢复:IMPDP是Oracle提供的逻辑恢复工具,可以通过以下命令进行全库恢复:```impdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y; ```4. 使用ALTER DATABASE进行全库备份:ALTER DATABASE命令可以备份整个数据库,可以通过以下命令进行全库备份:```SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/path/to/backup/controlfile.bkp';```5. 使用Data Pump进行全库备份:Data Pump是Oracle提供的数据导入导出工具,可以通过以下命令进行全库备份:```SQL> EXPDP system/password@database_nameDIRECTORY=data_pump_dir DUMPFILE=full_backup.dmp FULL=YES;```6. 使用RMAN进行全库增量备份:RMAN可以进行增量备份,只备份发生变化的数据,可以通过以下命令进行全库增量备份:```RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;```7. 使用EXP进行全库逻辑备份:EXP是Oracle提供的逻辑备份工具,可以通过以下命令进行全库备份:```exp system/password@database_name file=full_backup.dmp full=y;```8. 使用ALTER TABLESPACE进行表空间备份:可以通过ALTER TABLESPACE命令备份指定的表空间,可以通过以下命令进行表空间备份:```SQL> ALTER TABLESPACE tablespace_name BEGIN BACKUP;```9. 使用RMAN进行全库镜像备份:RMAN可以进行镜像备份,备份数据库的所有镜像拷贝,可以通过以下命令进行全库镜像备份:```RMAN> BACKUP AS COPY DATABASE;```10. 使用EXPDP进行全库逻辑备份,并压缩备份文件:可以通过以下命令进行全库逻辑备份,并对备份文件进行压缩:```expdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y compression=all;```以上是十个Oracle数据库全库备份的语句,可以根据实际需求选择其中一种或多种备份方式进行数据库的备份工作。
exp导出备份的属性详解在工作中经常需要对oracle数据库进行备份、异地恢复的情况。
Oracle的常规备份无非是exp/imp,expdp/impdp,rman三种方式。
1.exp/imp简单方便,适用于跨db版本、跨os平台、异地备份等情况,是大家最常用的一种备份方式。
2.expdp/impdp是10g以后推出的备份方式,其特点就是效率的大幅改善,据eygle报告,impdp相比与传统imp有20倍速度提升,其最大的缺点是不能跨数据库版本,连小版本号也不行(例如11.1到11.2)。
3.rman相比前两种备份方式,相对配置复杂,一般是DBA作为前两种方案的备份。
先看看exp/imp的用法:1.基本的exp写法1.exp userid/passwd@infodb81file=user_$DATE.dmp log=user_$DATE.loger: oracle用户名3.passwd:数据库用户密码db81:数据库的连接字符串5.file:备份后的文件名6.log:备份日志文件2.exp的参数参数一:buffer1.exp userid/passwd@infodb81 file=user_$DATE.dmp buffer=40960000002.注意:buffer的单位是bytes,例如设置1M,则是1024000,上面的例子设置的是400M。
3.根据我们测试的结果,加入buffer参数后,约有40%的性能提升。
4.5.经过反复验证:合理的buffer值是10240000-1024000之间,再大了反而效率更低。
6.环境:aix 6.1 16c 32G,sga信息如下7.SQL> show sga8.Total System Global Area 2.0043E+10 bytes9.Fixed Size 2153336 bytes10.Variable Size 1.3690E+10 bytes11.Database Buffers 6174015488 bytes12.Redo Buffers 176394240 bytes13.性能对比:14.加入buffer参数前(数据约9G,共31分钟)15.==========备份用户sinosybak 11-02-21 02:08:16 ====================16.==========备份用户shyang 11-02-21 02:35:49 ====================17.加入Buffer参数后(约18分钟)18.==========备份用户sinosybak 11-02-28 02:25:04 ====================19.==========备份用户shyang 11-02-28 02:43:52 ====================------------------------------------------------------------------------------------------------------------------------参数二:direct1.exp userid/passwd@infodb81file=user_$DATE.dmp direct=y recordlength=655362.direct :直接导出,数据从磁盘读入到高速缓存,直接写入到最终文件,所以没有数据行检查与匹配的过程。
oracle中expimp备份还原工具的使用详解Oracle数据库的exp和imp命令是数据库备份和恢复的常用工具。
本文将详细介绍exp和imp命令的用法和具体步骤。
一、exp命令exp命令用于将Oracle数据库中的数据和对象导出到一个二进制文件中,以进行备份或迁移。
以下是exp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。
2. 输入以下命令启动exp工具:其中,username是要导出数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。
3. exp工具启动后,会提示输入导出内容的方式。
可以选择导出全库、特定表或特定用户的数据。
输入相应的选项并按Enter键确定。
4. 接下来,exp工具会要求输入导出的目标文件名。
输入文件名并按Enter键确定。
5. 导出过程将开始执行。
exp工具会逐一导出数据库的数据和对象,并将其存储在目标文件中。
此过程可能需要一些时间,取决于数据库的大小和复杂性。
6. 导出完成后,在命令行中会显示相应的导出信息。
可以根据需要选择是否结束exp工具。
二、imp命令imp命令用于将exp命令导出的二进制文件恢复到Oracle数据库中。
以下是imp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。
2. 输入以下命令启动imp工具:其中,username是要导入数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。
3. imp工具启动后,会提示输入导入内容的方式。
可以选择导入全库、特定表或特定用户的数据。
输入相应的选项并按Enter键确定。
4. 接下来,imp工具会要求输入导入的源文件名。
输入文件名并按Enter键确定。
5. 导入过程将开始执行。
imp工具会读取源文件中的数据和对象,并将其恢复到目标数据库中。
EXPDB和IMPDP使用EXPDP和IMPDP是Oracle数据库中用于导出和导入数据的工具。
EXPDP用于将数据库中的数据、对象和元数据导出为一个二进制文件,而IMPDP则用于将这个二进制文件导入到另一个数据库中。
本文将详细介绍EXPDP和IMPDP的使用方法。
EXPDP命令用于在Oracle数据库中导出数据。
它可以导出整个数据库、指定的表空间、指定的表或指定的数据集。
EXPDP提供了很多选项,可以控制导出的方式,比如导出数据的压缩级别、并发作业数、导出的内容等。
以下是一个基本的EXPDP命令示例:``````上述命令将从数据库中导出所有的数据,然后将数据保存到data.dmp文件中,日志信息保存在expdp.log文件中。
接下来是IMPDP命令的使用。
IMPDP可以用于将导出的数据文件导入到一个新的数据库中。
它也可以使用很多选项来控制导入过程,比如指定导入的表空间、指定导入的对象、并发作业数等。
以下是一个基本的IMPDP命令示例:``````上述命令将从data.dmp文件中导入数据到数据库中,日志信息保存在impdp.log文件中。
在实际使用EXPDP和IMPDP时,有一些常用的选项可以帮助我们更好地管理数据的导入和导出过程。
下面是一些常用的选项及其说明:-`SCHEMAS`:指定要导出或导入的模式或用户。
可以同时指定多个模式。
-`TABLES`:指定要导出或导入的表。
可以同时指定多个表。
-`INCLUDE`:指定要导出或导入的对象类型。
可以是表、索引、约束等。
-`EXCLUDE`:指定要排除的对象类型。
-`JOB_NAME`:用于标识导出或导入作业的名称。
-`FULL`:指定是否导出或导入整个数据库。
-`NETWORK_LINK`:用于从一个远程数据库导入数据。
-`REMAP_SCHEMA`:用于在导入时重新映射模式或用户。
除了上述常用选项外,EXPDP和IMPDP还提供了很多其他选项,用于更灵活地控制导入和导出过程。
oracle使⽤expdp、impdp和exp、imp导⼊导出表及表结构使⽤expdp、impdp和exp、imp时应该注重的事项:1、exp和imp是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
2、expdp和impdp是服务端的⼯具程序,他们只能在oracle服务端使⽤,不能在客户端使⽤。
3、imp只适⽤于exp导出的⽂件,不适⽤于expdp导出⽂件;impdp只适⽤于expdp导出的⽂件,⽽不适⽤于exp导出⽂件。
4、对于10g以上的服务器,使⽤exp通常不能导出0⾏数据的空表,⽽此时必须使⽤expdp导出。
exp、imp导⼊导出sqlplus 进⼊数据库中导出直接在命令⾏下写命令1.导出⾃⼰的表exp userid=scott/tiger@myoral tables=(emp,dept) file=/opt/e1.dmp2.导出其它⽅案的表如果⽤户要导出其它⽅案的表,则需要dba的权限或是exp_full_database的权限,⽐如system就可以导出scott的表exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp3. 导出表的结构exp userid=scott/tiger@accp tables=(emp) file=/opt/e3.dmp rows=n4. 使⽤直接导出⽅式exp userid=scott/tiger@accp tables=(emp) file=/opt/e4.dmp direct=y这种⽅式⽐默认的常规⽅式速度要快,当数据量⼤时,可以考虑使⽤这样的⽅法。
这时需要数据库的字符集要与客户端字符集完全⼀致,否则会报错导出⽅案导出⽅案是指使⽤export⼯具导出⼀个⽅案或是多个⽅案中的所有对象(表,索引,约束...)和数据。
并存放到⽂件中1. 导出⾃⼰的⽅案exp userid=scott/tiger@myorcl owner=scott file=/opt/scott.dmp2. 导出其它⽅案如果⽤户要导出其它⽅案,则需要dba的权限或是exp_full_database的权限,⽐如system⽤户可以导出任何⽅案exp userid=system/manager@myorcl owner=(system,scott) file=/opt/system.dmp导出数据库导出数据库是指利⽤export导出所有数据库中的对象及数据,要求该⽤户具有dba的权限或者是exp_full_database权限增量备份(好处是第⼀次备份后,第⼆次备份就快很多了)exp userid=system/manager@myorcl full=y inctype=complete file=/opt/all.dmp导⼊1. 导⼊⾃⼰的表imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp2. 导⼊表到其它⽤户要求该⽤户具有dba的权限imp_full_database imp userid=system/tiger@myorcl tables=(emp) file=/opt/xx.dmp touser=scott3. 导⼊表的结构,只导⼊表的结构⽽不导⼊数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp rows=n4. 导⼊数据如果对象(如⽐表)已经存在可以只导⼊表的数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp ignore=y导⼊⽅案导⼊⽅案是指使⽤import⼯具将⽂件中的对象和数据导⼊到⼀个或是多个⽅案中。
oracle数据备份之expdp/impdp (2011-03-03 17:04)标签: oracle数据库空间分类:oracleORCALE10G提供了新的导入导出工具,数据泵。
Oracle官方对此的形容是:OracleDataPump technology enables VeryHigh-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写在命令行的后面。
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.parExport: Release 10.2.0.4.0 –64bit Production on Friday, 13 August, 2010 16:35:18Copyright (c) 2003, 2007, Oracle. All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsStarting “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 导出功能。
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 <5Warning: 建议把Query参数放入到参数文件中使用,以避免转义符带来的麻烦。
2. Sample该参数用来指定导出数据的百分比,可指定的值的范围从0.000001到99.999999,语法如下:Sample=[[Schema_name.]Table_name:]sample_percent指定该参数以后,EXPDP导出将自动控制导出的记录量,如导出A表中50%的记录,设置的Sample参数如下:Sample=A:50Warning: 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%’”, GrantWarning: 建议把Exclude参数放入到参数文件中使用,以避免转义符带来的麻烦。
2. Include 正规则与Exclude正好相反。
指定包含的对象类型或者对象名称。
Warning: 由于两个参数功能正好相反,因此在执行导入或导出命令时,两个参数不能同时使用,否则Oracle也不知道你想要干什么啦。
高级过滤在导出/导入的时候,我们常常有这样的需求,只想导出/导入表结构,或者只想导出/导入数据。
幸运的是数据泵也提供了该功能。
使用Content参数。
该参数有三个属性1) ALL : 导出/导入对象定义和数据,该参数的默认值就是ALL2) DATA_ONLY : 只导出/导入数据。
3) METADATA_ONLY : 只导出/导入对象定义。
Warning: 有一点值得注意的时,在执行导出的时候,如果使用了高级过滤,如只导出了数据,那么导入时,需要确保数据定义已经存在。
否则数据都变成没有主子了。
如果数据定义已经存在,导入时最好指定data_only,否则会触发ORA-39151错误,因为对象已经存在了。
过滤已经存在的数据我们知道,导入的表对象在目标库中已经存在,并且目标端没有创建数据完整性约束条件(RI)来检验数据的话,就有可能造成数据被重复导入。
数据泵提供了一个新的参数Table_exists_action,可以一定程度上降低重复数据的产生。
该参数用来控制如果要导入的表对象存在,执行什么操作。