oracle数据泵应用及常见问题

合集下载

Oracle数据泵的使用

Oracle数据泵的使用

Oracle数据泵的使用几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data P ump 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注意:数据库不建立完备的备份,因为在导出文件中没有灾难发生时的最新数据。

oracle数据泵参数

oracle数据泵参数

oracle数据泵参数Oracle数据泵是Oracle数据库中的重要工具之一,它可以将数据库中的数据和对象导出到文件中,也可以将文件中的数据和对象导入到数据库中。

在使用数据泵时,需要指定一些参数,以便正确地执行数据泵操作。

本文将介绍Oracle数据泵中常用的参数及其作用。

1. DIRECTORYDIRECTORY参数用于指定数据泵操作中使用的目录对象。

目录对象是一个指向操作系统中的目录的对象,它允许Oracle数据库操作系统文件系统中的文件。

2. DUMPFILEDUMPFILE参数用于指定导出数据的文件名。

通常情况下,导出的数据会被保存为一个或多个文件,该参数指定这些文件的名称和位置。

3. LOGFILELOGFILE参数用于指定数据泵操作的日志文件名。

日志文件包含有关导入或导出操作的详细信息,包括错误和警告信息。

4. CONTENTCONTENT参数用于指定导出的内容类型。

可以选择导出整个数据库、一个或多个表、一个或多个分区或特定类型的对象。

5. SCHEMASSCHEMAS参数用于指定要导出的模式。

可以选择导出整个数据库或指定一个或多个模式。

6. TABLESTABLES参数用于指定要导出的表。

可以选择导出整个模式或指定一个或多个表。

7. INCLUDEINCLUDE参数用于指定要包含在导出的对象中的对象类型。

可以选择导出表、索引、约束、触发器、视图等对象类型。

8. EXCLUDEEXCLUDE参数用于指定要从导出中排除的对象类型。

可以选择排除表、索引、约束、触发器、视图等对象类型。

9. NETWORK_LINKNETWORK_LINK参数用于指定在导出或导入数据时使用的数据库链接。

这允许从另一个数据库中导出数据,而无需在本地创建中间文件。

10. FLASHBACK_TIMEFLASHBACK_TIME参数用于指定要导出的数据的时间点。

该参数允许您导出指定时间点之前的数据,而不是当前的数据。

使用EXPDP|IMPDP替代EXP|IMP备份数据

使用EXPDP|IMPDP替代EXP|IMP备份数据

一、数据泵(Data Pump)主要解决的问题
1. 据说比 IMP/EXP 更加灵活, 支持多种元数据过滤策略, 多种导入/导出模式, 如将 A 库 B 用户导到 C 库中 D 用户, 则只需要 REMAP_SCHEMA 即可 2. 占用 USER 表空间问题。一直纠结的占用其他表空间问题可以用 REMAP_TABLESPACE 参数解决 3. 高版本数据导入到低版本问题。可以在 Oracle11g 中用 version 参数指定版本,在 Oracle10g 中导入。 4. 空表问题,Oracle11g 新的表并且表中无数据也未使用过则表的 SEGMENT 空间是不会分配的,这样在 EXP 时表 是导不出来的,这个问题的解决就是给表分配 SEGMENT 或使用 EXPDP 了 i. Select 'ALTER TABLE ' || TABLE_NAME || ' ALLOCATE EXTENT;' From user_tables WHERE NUM_ROWS=0, 将查询结果导出成 sql 脚本执行即可 ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=FALSE SCOPE=BOTH
指定。 有了这个目录指定之后,就可以使用 EXPDP 了。 2. 删除目录指定
Drop Directory AAA
几个参数
REMAP_SCHEMA 将一个方案中的对象加载到另一个方案。 REMAP_TABLE 将表名重新映射到另一个表。 例如, REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。 REMAP_TABLESPACE 将表空间对象重新映射到另一个表空间。
SELECT * FROM dba_directories;

数据泵使用总结

数据泵使用总结

数据泵使用总结Oracle10g 数据泵导出命令expdp 使用总结(一)1.1.1 expdp使用使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.数据泵的使用必须在服务器端进行。

首先得建DIRECTORY:SQL> conn /as sysdbaSQL> CREATE OR REPLACE DIRECTORY dir_dump AS '/u01/backup/';SQL> GRANT read,write ON DIRECTORY dir_dump TO public;查询已有的目录:select * from dba_directories;删除路径:drop directory exp_dir;1) 导出scott整个schema--默认导出登陆账号的schema$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par Windows下面:$ expdp scott/tiger@db_esuite parfile=d:\orahome\expdp.parexpdp.par内容: 大小写不区分DIRECTORY=dir_dumpDUMPFILE=scott_full.dmpLOGFILE=scott_full.log--其他账号登陆, 在参数中指定schemas$ expdp system/oracle@db_esuiteparfile=/orahome/expdp.parexpdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott_full.dmpLOGFILE=scott_full.logSCHEMAS=SCOTT2) 导出scott下的dept,emp表$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logTABLES=DEPT,EMP如果写为:大小写不区别,指定schemas和tables不能同时使用directory=dir_dumpdumpfile=scott.dmplogfile=scott.logtables=dept,emp3) 导出scott下除emp之外的表$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logEXCLUDE=TABLE:"='EMP'"Eg:Impdp serviceworks_0916DIRECTORY=dmp_dir DUMPFILE= expbizservice0916.dmp remap_schema=bizservice_0916:serviceworks_0916 EXCLUDE=INDEXEXCLUDE=REF_CONSTRAINT exclude=table_statistics LOGFILE=imp1_tab.log4) 导出scott下的存储过程$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logINCLUDE=PROCEDURE5) 导出scott下以'E'开头的表$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logINCLUDE=TABLE:"LIKE 'E%'" //可以改成NOT LIKE,就导出不以E开头的表6) 带QUERY导出$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logTABLES=EMP,DEPTQUERY=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的数据, 那么在导入的时候就会出现错误.Oracle10g 数据泵导出命令expdp 使用总结(二)1.1.2 expdp选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下: ATTACH=[schema_name.]job_nameschema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:expdp scott/tiger ATTACH=scott.export_job默认的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_ONLY3. DIRECTORY指定转储文件和日志文件所在的目录.语法如下:DIRECTORY=directory_objectdirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录,示例如下: expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump建立目录:CREATE DIRECTORY dump as 'd:\dump';查询创建了那些子目录:SQL:\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.dmp5. 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=y7. 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_valuescn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用,示例如下: expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据.语法如下:FLASHBACK_TIME="TO_TIMESTAMP(time_value)"示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_TIME="TO_TIMESTAMP('2 5-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=y13. INCLUDE指定导出时要包含的对象类型及相关对象.语法如下:INCLUDE=object_type[:name_clause][,… ]示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=triggerOracle10g 数据泵导出命令expdp 使用总结(三)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_tr igger后面想临时停止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_jobExport> status15. LOGFILE指定导出日志文件文件的名称,默认名称为export.log.语法如下: LOGFILE=[directory_object:]file_namedirectory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值,示例如下:expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项. expdp中使用连接字符串和network_link的区别:expdp属于服务端工具,而exp属于客户端工具,expdp生成的文件默认是存放在服务端的,而exp生成的文件是存放在客户端.expdp username/password@connect_string //对于使用这种格式来说,directory使用源数据库创建的,生成的文件存放在服务端。

impdp cluster参数

impdp cluster参数

impdp cluster参数impdp cluster参数是Oracle数据库中的一个重要功能,用于在集群环境下进行数据泵导入操作。

本文将详细介绍impdp cluster参数的使用方法和注意事项。

一、impdp cluster参数简介impdp cluster参数是用于在Oracle集群环境下进行数据泵导入的一个重要参数。

在集群环境中,多个实例共享同一个数据库,因此在进行数据导入时需要考虑到集群的特性。

二、impdp cluster参数的使用方法使用impdp cluster参数进行数据导入的方法如下:1. 首先,登录到目标数据库的服务器端。

2. 打开命令行终端,输入以下命令来进行数据导入:impdp cluster=集群名称directory=导出目录dumpfile=导出文件名 logfile=日志文件名三、impdp cluster参数的注意事项在使用impdp cluster参数进行数据导入时,需要注意以下几点:1. 集群名称必须正确,并且在目标数据库中存在。

2. 导出目录必须与导出数据文件所在的目录相同。

3. 导出文件名必须正确,并且在导出目录中存在。

4. 日志文件名必须是一个有效的文件名,并且在导出目录中不存在。

四、impdp cluster参数的常见问题及解决方法在使用impdp cluster参数进行数据导入时,可能会遇到以下常见问题:1. 导出文件无法找到:可能是导出文件名输入错误或导出文件不存在。

解决方法:检查导出文件名是否正确,并确认导出文件是否存在。

2. 导入数据失败:可能是集群名称输入错误或者目标数据库中不存在该集群。

解决方法:检查集群名称是否正确,并确认目标数据库中是否存在该集群。

3. 导入日志文件无法生成:可能是日志文件名输入错误或者导出目录没有写入权限。

解决方法:检查日志文件名是否正确,并确认导出目录是否具有写入权限。

五、总结impdp cluster参数是Oracle数据库中的一个重要功能,用于在集群环境下进行数据导入操作。

Oracle数据库Data Pump的使用

Oracle数据库Data Pump的使用

Oracle数据库Data Pump的使用第1章Data Pump简介1.1使用Data Pump的优势Data Pump是Oracle 10g版本开始支持的新特性,支持并行处理导入、导出任务;支持暂停和重启动导入、导出任务;支持导入时通过加入参数实现导入过程中修改对象属主、数据文件和表空间等。

现在的数据规模和数据量增长迅速,以前几百M或者几G可以使用IMP/EXP 工具导入导出,也花不了多久,但对于现在动不动就几十G或上百G的数据量,再使用IMP/EXP工具就显得力不从心了,大量时间浪费在等待上。

而Data Pump 的执行速度比IMP/EXP要快数倍,也是Oracle推荐的数据导入导出工具。

第2章使用Data Pump的需求和权限2.1环境要求1.数据库必须是Oracle 10g以上版本(包括10g)2.Data Pump使用expdp生成的.dmp文件,只能使用impdp导入,不能使用imp来进行导入;反之,exp生成的dmp文件,也不能使用impdp进行导入。

2.2在数据库中创建Directory和赋予相应的角色权限(注意:需要使用sys或system用户创建)1.Directory是在数据库中创建的一个指向操作系统中的一个路径目录,导出的数据文件“.dmp”会保存在这里。

(注:先在操作系统上创建目录D:\BACKUP)SQL> create directory dump_file_dir as 'D:\BACKUP';2.创建完后授予用户在此目录读和写的权限SQL> grant read,write on directory dump_file_dir to topo6;3.赋予用户角色权限SQL> grant exp_full_database to topo6;下面以一个例子做示范:例:第3章执行数据的导出3.1导出命令(导出前停止应用程序)C:\>expdp topo6/topo6 directory=dump_file_dir dumpfile=YW_NCC6.0R2_130521 .dmp logfile=YW_NCC6.0R2_130521.log例:(数据文件占用了系统实际空间13G,由于Data Pump在导出时只会对真实已写入的数据块进行导出,空块不会计算在内,这也是速度快的关键)开始导出:导出完毕:对应的操作系统目录中的文件:第4章执行数据的导入1.在需要执行导入的数据库中创建Directory目录,把要导入的.dmp文件拷贝到该目录下SQL> create directory dump_file_dir as 'D:\BACKUP';2.创建完后授予用户在该目录读写的权限SQL> grant read,write on directory dump_file_dir to topo6;3.赋予用户角色权限SQL> grant imp_full_database to topo6;例子:(导入的时间会比较久一些,该例中最后花费30分钟,因为数据导入后,要处理索引和约束)导入前操作系统上对应目录的.dmp文件开始导入:第5章Data Pump的扩展使用5.1并行导入、导出5.1.1并行导出并行可以指定多个dumpfile,parallel的值等于指定dumpfile的数量。

数据泵导lob很慢 -回复

数据泵导lob很慢 -回复

数据泵导lob很慢-回复数据泵导LOB是一项常用的数据迁移和备份技术,然而,有时候数据泵导LOB的速度会变得很慢。

本文将探讨数据泵导LOB变慢的原因,并提供一系列解决方案,帮助读者解决这一问题。

一、问题定义数据泵导LOB是Oracle数据库中常用的数据迁移和备份技术,通过将数据转储到二进制文件中,然后将其重新加载到Oracle数据库中。

然而,有时候在执行数据泵导LOB操作时,我们会发现其速度变得异常缓慢,从而影响了整个数据迁移和备份的进程。

二、问题分析1. 大对象(LOB)的特点LOB是Oracle数据库中一种特殊的数据类型,它可以存储大量的数据,比如文本、图像、音频和视频等。

由于LOB数据的大小通常较大,因此其导入和导出的速度相对较慢。

2. 数据泵导LOB的工作原理数据泵导LOB的过程可以分为三个阶段:导出前处理(Preprocessing)、数据导出(Data Export)和导入后处理(Postprocessing)。

导出前处理阶段主要是为了准备导出的数据,并建立相关的导出环境。

此阶段不涉及实际数据的导出。

数据导出阶段是实际进行数据导出的过程,包括了将LOB数据转储到二进制文件中的操作,同时也包括了其他类型的数据。

导入后处理阶段主要是对导入的数据进行一些必要的后处理工作,比如恢复索引、约束和触发器等。

3. 数据泵导LOB缓慢的原因数据泵导LOB变慢的原因可以有多种,以下是一些常见的原因:- 大对象(LOB)数据的体积较大,需要较长的时间来读取和写入。

- 数据库服务器性能不足或负载过高,造成数据泵导出和导入的速度受限。

- 网络传输速度较慢,导致数据泵的导出和导入速度降低。

- 数据库中存在大量的索引、触发器等附加对象,导致导出和导入过程中的数据操作速度变慢。

三、解决方案在解决数据泵导LOB变慢的问题时,可以从以下几个方面入手:1. 优化数据库服务器性能- 检查并优化数据库服务器的硬件配置,包括处理器、内存、存储等。

oracle 数据泵使用技巧

oracle 数据泵使用技巧

oracle 数据泵使用技巧Oracle 数据泵是一个非常强大的工具,用于在Oracle数据库之间导入和导出数据。

它提供了一种快速和高效的方式,可以将数据从一个数据库迁移到另一个数据库,或者备份和还原数据。

在本文中,我将分享一些使用Oracle数据泵的技巧,希望对您有所帮助。

让我们来了解一下数据泵的基本概念和术语。

数据泵由两个主要组件组成:导出(expdp)和导入(impdp)。

导出是将数据从源数据库导出到文件系统的过程,而导入是将数据从文件系统导入到目标数据库的过程。

在导出和导入过程中,可以使用各种参数和选项来控制数据的导出和导入行为。

一、导出数据1. 导出整个数据库要导出整个数据库,可以使用以下命令:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp full=y```其中,username是数据库用户的名称,password是用户的密码,database_name是数据库的服务名,directory_name是导出文件保存的目录,dumpfile_name.dmp是导出文件的名称。

通过设置full参数为y,可以导出整个数据库。

2. 导出指定的表如果只需要导出特定的表,可以使用tables参数来指定要导出的表的名称:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name```其中,table_name是要导出的表的名称。

可以通过逗号分隔多个表的名称。

3. 导出指定的数据有时候,可能只需要导出表中的部分数据。

可以使用query参数来指定要导出的数据的条件:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name query=condition```其中,condition是指定要导出的数据的条件。

Oracle 数据泵详解

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=yExport: Release 10.2.0.1.0- Production on 星期日, 03 5月, 2009 17:54:49Copyright (c) 2003, 2005, Oracle. All rights reserved.数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输数据对象的机制。

该实用程序可以使用以下命令进行调用:示例: expdp scott/tigerDIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导出的运行方式。

具体方法是: 在 'expdp' 命令后输入各种参数。

要指定各参数, 请使用关键字:格式: expdp KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)示例: expdp scott/tigerDUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表USERID 必须是命令行中的第一个参数。

使用Oracle 10g数据泵使用详解

使用Oracle 10g数据泵使用详解

使用Oracle 10g数据泵(EXPDP/IMPDP)一、关于数据泵的概述在Oracle 10g中,数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O 服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。

通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。

数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。

新的导入/导出工具完全成为了一个客户端应用,通过IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以推出连接,任务会在server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改二、数据泵的使用示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp注意到与EXP不同,EXPDP增加了一个主要的参数:DIRECTORY这个参数是用来定义一个路径,前面已经提到,数据泵主要在Server端工作,导出文件需要写出到Server 端本地目录,这个DIRECTORY就是对应的Server端的路径如://创建目录create or replace directory expdir as 'd:\';//给test赋予目录的读写权限grant read,write on directory expdir to test;//导出数据C:\>expdp test/test@acf dumpfile=test.dmp directory=expdir三、EXPDP/IMPDP的停止与重启动EXPDP和IMPDP的本质在于,通过API调用,把传统的EXP/IMP类交付式模式的操作,转变成数据库内部的job任务,从而实现了任务的可终止与重启动。

oracle数据泵介绍及使用

oracle数据泵介绍及使用

oracle数据泵介绍及使⽤数据泵可以⾼效备份,复制,保护和传输⼤量得数据和元数据。

可以通过下列⽅式使⽤数据泵:1.对整个数据库或数据⾃⼰进⾏实时逻辑备份;2.为测试或开发,复制整个数据库或数据⼦集;3.快速⽣成⽤于重建对象的DDL代码;4.通过旧版本导出数据,然后像新版本导⼊数据的⽅式,升级数据库。

1.⾼效处理⼤量数据的功能,可以⾼效导出和导⼊⼤量数据。

2.交互式命令⾏使⽤程序,使⽤它可以先断开连接,然后恢复连接活动的数据泵作业。

3.在不创建数据泵⽂件的情况下,从远程数据库导出⼤量数据,并将这些数据直接导⼊本地数据库。

4.通过导⼊和导出⼯作,在运⾏时更改⽅案,表空间,数据⽂件和存储位置;5.精细过滤对象和数据;6.对⽬录对象应⽤受控安全模式(通过数据库);7.⾼级功能,如压缩和加密。

1.expdp (数据泵导出实⽤程序);2.impdp (数据泵导⼊实⽤程序);3.DMBS_DATAPUMP软件包(数据泵API);4.DBMS_METADATA软件包(数据泵元数据API);在导出和导⼊数据和元数据时,expdp 和 impdp 实⽤程序会使⽤内置的DBMS_DATAPUMP DBMS_METADATA 软件包。

DBMS_DATAPUMP软件包可以在不同的数据库环境之间移动整个数据库或数据⼦集。

DBMS_MATEDATA软件包可以导出和导⼊数据库对象的信息。

当启动数据泵导出和导⼊作业时,数据库服务器上就会初始化⼀个OS主进程。

这个主进程的名称格式为 ora_dmNN_。

在Linux和Unix系统中,可以使⽤ps命令查看进程。

ps -ef |grep ora_dm因为数据泵使⽤其内部的PL/SQL代码执⾏操作,所以需要使⽤共享池中的⼀些内存加载PL/SQL软件。

如果共享池中空间不⾜,系统会提⽰ORA-04031:unable to allocate bytes of shared memory…错误提⽰,并中断数据泵。

Navicat下Oracle数据泵的使用简单例子

Navicat下Oracle数据泵的使用简单例子

Navicat下Oracle数据泵的使用简单例子如何使用Navicat等数据库开发工具进行高效开发将是未来工作的重点。

Navicat一来美观而来够操作够傻瓜,使用得当其强大功能与PL SQL不相上下。

今天学习就是如何在Navicat中使用数据泵进行数据导入导出。

数据泵使用前事项:想使用数据泵必须以sys或system等dba角色进行数据导出:1、导出前必须先创建表目录,点击“其他”--“目录”可查看当前数据库所有目录。

具体如下图:点击“新建目录”,进行目录新建,目录路径必须真实存在。

路径填写完毕后点击保存即可。

具体如下图:随后点击“数据泵”--“数据泵导出”进入数据泵导出界面;接下来选择模式,按照模式(FULL--全部导出、TABLESPACE--表空间、SCHEMA--用户节点下对象集合、TABLE--表)可按相关指标导出数据;本文的实现是以用户为单位,在导出数据下方的空白框中选择需要导出的用户对象,本例需导出的用户为ARREARS;接下来在转储文件中,选择目录及保存的文件名,然后点击生成SQL。

SQL预览中可以看到具体生成的SQL,确认SQL没啥问题后,点击运行(由于数据库水平有限,我是看不太出来是否有错误....惭愧...)点击运行后,可看到如下运行过程:看到成功完成后表示数据导出已经完成,在对应目录中可以看到导出的DMP文件:至此数据导出部分完成。

数据导入:数据导出后下来可以进行数据导入了,话不多说继续:点击“数据泵”--“数据泵导入”随后选择模式为“SCHEMA”(用户节点集合)再选择“表存在的动作”,表示的是若导入的用户下存在表名相同的表数据泵选择的操作,一共有“SKIP”--跳过、“APPEND”--追加、"TRUNCATE"--清空表、“REPLACE”--替换四种操作,接下来在模式的输入框中输入需要将数据导入的用户节点名,此例为 ARREARS,接下来再选择转储文件的目录和文件名(比较奇怪的是,前面导出的ARREARS.DMP文件名在可选列表中变成了ARREARS.DMP.DMP,不过好在可以修改,直接修改为实际文件名即可)点击生成SQL后,检查SQL是否有异常:点击运行后,看见xxxx时间运行成功说明导入完成了!检查一下ARREARS用户下的表,都已经导进来了。

oracle expdp用法 -回复

oracle expdp用法 -回复

oracle expdp用法-回复Oracle expdp(Export Data Pump)是Oracle数据库提供的一种工具,用于将数据库中的数据、数据库对象、表空间等导出到一个文件中,以方便进行数据备份、迁移或复制等操作。

本文将逐步介绍expdp 的用法和具体步骤,以帮助读者更好地理解和应用该工具。

1. 概述Oracle expdp是Oracle数据库自带的一个命令行工具,可用于导出数据库中的数据和对象。

通过使用expdp,可以将数据库导出到一个二进制文件中,这个文件可以用于在同一个Oracle数据库中恢复数据,或者在不同的Oracle数据库中进行数据的迁移。

2. 导出方式expdp提供了多种导出方式,可以根据需求选择合适的方式进行导出。

常用的导出方式包括:2.1 选定特定的对象导出使用expdp可以选择性地导出指定的对象,包括表、视图、存储过程、触发器等。

可以通过使用INCLUDE和EXCLUDE参数来指定需要导出或排除的对象。

2.2 导出整个用户如果希望导出一个用户的所有对象,可以使用FULL参数导出整个用户。

例如,使用命令:expdp hr/full=Y FILE=hr.dmpDIRECTORY=data_pump_dir将用户hr的所有对象导出到hr.dmp文件中。

2.3 导出指定表空间可以通过使用TABLESPACES参数来指定需要导出的表空间。

例如,使用命令:expdp TABLESPACES=users FILE=users.dmp DIRECTORY=data_pump_dir将users表空间导出到users.dmp文件中。

3. 导出步骤3.1 创建目录对象在开始导出之前,首先需要在Oracle数据库中创建一个目录对象,用于存储导出的文件。

可以使用以下命令创建目录对象:CREATE DIRECTORY data_pump_dir AS '/path/to/directory';其中,data_pump_dir是目录对象的名称,'/path/to/directory'是实际存储导出文件的路径。

Oracle数据泵的应用

Oracle数据泵的应用

73 2019.03基础设施与数据管理责任编辑:季莹 投稿信箱:netadmin@Infrastructure Mgmt. & Data Mgmt.Oracle 数据泵的应用■ 乌鲁木齐 孙湘蓉Oracle 备份方式主要分为逻辑备份和物理备份。

Oracle 热备份与冷备份都属于物理备份。

用数据泵导出数据备份方式则属于逻辑备份。

Oracle 数据库导入导出工具,可以使用exp/imp,但这是比较早期的工具。

Oracle 10g 开始后引入数据泵的方式。

相对于传统的exp 命令来说,执行效率更高。

数据泵使用Oracle 10g 开始引入数据泵,与传统exp/imp 相比,数据泵可以作业分离,允许挂起和恢复导入导出任务,可以从失败点重新启动失败的作业,还可以控制导入导出的版本(version)。

在使用数据泵前,必须创建DIRECTORY 并获得访问这么对象的权限,语句如下:创建dump_scott 目录c r e a t e d i r e c t o r y编者按:Oracle 数据泵是Oracle 提供的更新、更快、更灵活的数据导入、导出工具。

本文通过对Oracle 数据泵与原有IMP/EXP 导入导出功能使用对比分析,着重讨论了基于Oracle 数据泵的Oracle 数据导入导出方法。

d u m p _s c o t t a s '/h o me /oracle/dump/scott'为dump_scott 目录授权Grant read,write on d i r e c t o r y d u m p _s c o t t toscott1.expdp 命令(1)常用参数content :导出数据还是只导出元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLYdirectory :dumpfile 和logfile 的目录对象dumpfile/logfile exclude :不导出指定的对象(与这些对象有依赖的也不会导出)eg:exclude=table:"lik e'DBA_%'"include :导出指定的对象,与exclude 功能相反,用法相同j o b _name :定义导出作业的名称attach :附加到已经在运行的现有作业,用于管理作业full :默认值为n,full=y 表示导出所有对象nologfile :=y 表示不写expdp 的日志文件,默认值为ntables/tablespaces :运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象version :限制要导出的对象到指定版本的数据库(2)举例导出数据库所有对象 E x p d p s y s t e m /p w d @i p /O R A C L E _S I D dumpfile=dumpdir:db_%U.dmp logfile=dumpdir:db_exp_%U.log job_name=exp_db full=y2.impdp 命令(1)常用参数742019.03 基础设施与数据管理责任编辑:季莹 投稿信箱:netadmin@Infrastructure Mgmt. & Data Mgmt.content :导入数据还是只导入元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLYdirectory :dumpfile 和logfile 的目录对象dumpfile/logfile include :导入指定的对象,eg:exclude=table:"lik e'DBA_%'"job_name :定义导入作业的名称attach :附加到已经在运行的现有作业,用于管理作业full :默认值为n,full=y 表示导出所有对象nologfile :=y 表示不写expdp 的日志文件,默认值为ntables/tablespaces :运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象table_exists_action :定义当表已经存在时执行的操作(2) 举例导入数据库所有对象:i m p d p s y s t e m /p w d @i p /O R A C L E _S I D dumpfile=pumpdir:db_01.dmp logfile=pumpdir:db_imp_%U.log job_name=imp_db full=y数据泵与传统导入导出方式对比分析1.导入导出数据泵(expdp/impdp)是服务器端工具。

Oracle数据泵使用详解

Oracle数据泵使用详解

Oracle数据泵使⽤详解数据泵使⽤EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。

EXPDP和IMPDP是服务端的⼯具程序,他们只能在ORACLE服务端使⽤,不能在客户端使⽤。

IMP只适⽤于EXP导出的⽂件,不适⽤于EXPDP导出⽂件;IMPDP只适⽤于EXPDP导出的⽂件,⽽不适⽤于EXP导出⽂件。

expdp或impdp命令时,可暂不指出⽤户名/密码@实例名 as ⾝份,然后根据提⽰再输⼊,如:expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dir;环境windows2003SP2oracle11gR1使⽤expdp和impdp1.命令⾏打开sqlplussqlplus /nologconn / as sysdba2.创建逻辑⽬录,该命令不会在操作系统创建真正的⽬录(最好⼿⼯先建好),最好以administrator等管理员创建。

create directory dir as 'd:\dump'; //dir名称可以随便命名需要⼿⼯创建d:\dump3.查看管理理员⽬录(同时查看操作系统中是否存在,因为Oracle并不关⼼该⽬录是否存在,如果不存在,则出错)select * from dba_directories;4.给scott⽤户赋予在指定⽬录的操作权限,最好以system等管理员赋予。

grant read,write on directory dir to scott;5、导出数据1)按⽤户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dir logfile=expdp.log2)并⾏进程parallelexpdp scott/tiger@orcl directory=dir dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dir;4)按查询条件导expdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导expdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dir DUMPFILE=full.dmp FULL=y;6、还原数据1)导到指定⽤户下impdp scott/tiger@orcl DIRECTORY=dir DUMPFILE=expdp.dmp SCHEMAS=scott logfile=impdp.log2)改变表的ownerimpdp system/manager DIRECTORY=dir DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system; 3)导⼊表空间impdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=example;4)导⼊数据库impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/manager DIRECTORY=dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION****************************************************************************************LINUX环境(RHEL5)oracle10g和oracle11g使⽤expdp和impdp1.命令⾏打开sqlplussqlplus /nologconnect system/oracle2.创建逻辑⽬录,该命令不会在操作系统创建真正的⽬录(最后⼿⼯先建好),最好以system等管理员创建。

Oracle数据泵原理及应用

Oracle数据泵原理及应用

Oracle数据泵原理及应用目录Oracle数据库的备份历史 (2)数据泵导入导出与传统导入导出的区别 (2)数据泵的原理及好处 (2)导库(数据库还原)步骤说明 (3)数据泵的局限性 (4)Oracle数据库的备份历史在信息系统中,数据库的备份是必不可少的一个步骤。

在Oracle数据中,数据的备份和还原在10g版本之前,一直使用的是IMPORT/EXPORT的导入导出方式。

最大的缺点就是速度慢、效率低。

当这种方式用于企业级的项目中的时候,缺点就暴露出来了。

对于大数据的企业项目,数据的备份和还原因为采用IMPORT/EXPORT 的方式而降低效率。

数据泵导入导出与传统导入导出的区别在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种方式.数据泵的原理及好处随着Oracle10g版本的更新,引入了一个新的机制:Data Pump,数据泵。

是IMPDP/EXPDP的简称。

单从名称上看这种技术可描述为IMP/DMP的扩展,泵是将全部用户表占用数据库数据文件空间按照从大到小的排序展示出来,方便用户筛选出不需要进行备份的表。

在数据过G以及数据量较大的表有很好的作用,基于以上两点,数据泵工具势在必行,下面我们来看一组数据备份对比列表:数据泵的使用意义重大,下面我们来看一组数据备份对比列表相比较而言竟数据备份文件只有639MB,数据量达到一定的规模之后,EXPDP在效率上的表现较EXP才会更有优势。

7oracle数据泵的使用

7oracle数据泵的使用

实验五:Oracle数据泵的使用一:使用数据泵导出数据1、连接Oracle数据库SQL> conn / as sysdba已连接。

2、创建一个操作目录SQL> create directory dir as 'e:\dump';注意同时需要使用操作系统命令在硬盘上创建这个物理目录目录已创建。

3、授予用户操作dir目录的权限,SQL>grant read, write on directory dir to scott ;授权成功。

4、使用命令expdp导出数据(可以按照用户模式导出、按照表、按照表空间导出和全库导出)Cmd命令行下运行:C:\>expdp scott/llx123 directory= dir dumpfile =scotttab.dmp tables= emp , dept(注意此语句末尾不要加;)Export: Release 10.2.0.1.0 - Production on 星期三, 18 6月, 2008 15:49:00Copyright (c) 2003, 2005, Oracle. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options启动"SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dump_dir dumpfile=20080601.dmp tabledept,emp正在使用BLOCKS 方法进行估计...处理对象类型TABLE_EXPORT/TABLE/TABLE_DA TA使用BLOCKS 方法的总估计: 128 KB处理对象类型TABLE_EXPORT/TABLE/TABLE处理对象类型TABLE_EXPORT/TABLE/INDEX/INDEX处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT. . 导出了"SCOTT"."DEPT" 5.656 KB 4 行. . 导出了"SCOTT"."EMP" 7.820 KB 14 行已成功加载/卸载了主表"SCOTT"."SYS_EXPORT_TABLE_01"******************************************************************************SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:E:\DUMP\SCOTTTAB>DMP作业"SCOTT"."SYS_EXPORT_TABLE_01" 已于15:49:22 成功完成C:\>(标蓝色部分为命令执行导出时命令行的相关执行信息)***********************注常见错误如果没有在指定的硬盘上建立物理文件,则会出现错误提示信息解决的方法是现在硬盘上创建指定的物理文件目录,然后在执行expdp程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据泵应用及常见问题
1、Oracle数据泵简介
Oracle数据泵(Data Pump)是Oracle10G引进的新技术,在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP。

经相关测试,Oracle数据泵方式进行数据导入导出要比以前的IMP/EXP快10倍左右,给大数据量的数据库导入导出提供了方便。

数据泵方式与IMP/EXP的主要区别在于EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用。

而EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用;IMP只适用于EXP导出文件,不适用于EXPDP 导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。

2、Oracle数据泵命令及主要参数
a)EXPDP/IMPDP使用前准备
运行命令前必须建立工作目录并赋权限,然后执行命令,具体步骤如下:
a1在数据库所在机器上建立工作目录,如:d:\dp。

a2用数据库DBA用户SYS登录数据库,执行语句如下语句:
create directory dump_dir as ' d:\dp ';
grant read, write on directory dump_dir to db_user;(此处dump_dir 是第上面语句中工作目录名称,非实际目录名称,db_user是数据库用户名)。

a3运行EXPDP命令。

b)EXPDP主要参数
a1DIRECTORY:导出数据的目录(目录是上面的设定的目录dump_dir)
a2DUMPFILE:导出的文件名。

a3VERSION:以哪个版本导出数据,如果在不同的版本间导出导入数据,这个参数非常有用,例如将Oracle11G数据导入到Oracle10G(10.2.0.1.0)的数据库中,参数应写为VERSION=10.2.0.1.0,否则无法导入到低版本的数据库中。

a4TABLES:导出的表的名称,如果多个表则用逗号隔开。

a5QUERY:用于指定过滤导出数据的where条件,格式为:
QUERY=TABLE_NAME:"WHERE FIELD_NAME='12345'"。

TABLE_NAME为表名称,FIELD_NAME为字段名称。

可以像SQL语句一样多个条件组合。

a6nologfile:是否生成日志,nologfile=y不生成日志,nologfile=n生成日志。

c)IMPDP主要参数
a1DIRECTORY:导入数据的目录(目录是上面的设定的目录dump_dir)。

a2DUMPFILE:导出的文件名。

a3TABLE_EXISTS_ACTION:该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP,TABBLE_EXISTS_ACTION={SKIP| APPEND|TRUNCATE|FRPLACE}。

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

注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项。

a4REMAP_SCHEMA:将数据导入到指定用户中,例如:
REMAP_SCHEMA=super:target,即表示将super用户中的对象导入到target用户中。

a5REMAP_TABLESPACE:用于指定导入的表空间,例如:
REMAP_TABLESPACE=SOURCE_TABLESPACE:TARGET_TABLESPACE。

SOURCE_TABLESPACE为源表空间,SOURCE_TABLESPACE为目标表空间。

a6nologfile:是否生成日志,nologfile=y不生成日志,nologfile=n生成日志。

3、数据泵使用常见问题
a)导入数据时错误
错误如下:
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-39142: 版本号2.1 (在转储文件"d:\impzhzs\xsbak2010-12-25.dmp" 中) 不兼容。

错误原因:
出现上面的错误是由于源数据库与目标数据库版本不同造成的。

解决方法:
应在导出时增加VERSION参数,设置为目标数据的版本号。

b)导入数据后无法访问数据表
错误如下:
ORA-28110: 策略函数或程序包DB_ZGSJ.SECURITY_PACKAGE 有错误。

错误原因:
源数据库中的表所在的用户启用了VPD权限。

默认IMPDP后,表的VPD权限也会导入进去,如果用户改变,导入表的VPD权限是只能让原先用户访问,当前的用户没访问权限,所以报上面的错误。

解决方法:
删除VPD权限,查询当前用户的VPD权限,可以通过数据字典视图USER_POLICIES 获得。

假设用户名为USER_NAME,则通过执行下面的语句可以删除当前用户下的所有VPD 权限。

declare
-- Local variables here
i integer;
str_schema varchar2(100) := 'USER_NAME';
str_obj_name varchar2(100) ;
str_group_name varchar2(100);
str_policy_name varchar2(100);
begin
-- Test statements here
for item in (select * from user_policies) loop
str_obj_name := item.object_name;
str_group_name := item.policy_group;
str_policy_name := item.policy_name;
dbms_rls.drop_grouped_policy(object_schema => str_schema,object_name => str_obj_name,
policy_group => str_group_name,policy_name => str_policy_name);
end loop;
for item in (select * from USER_POLICY_GROUPS) loop
str_obj_name := item.object_name;
str_group_name := item.policy_group;
str_policy_name := str_schema;
dbms_rls.delete_policy_group('USER_NAME ‘,str_obj_name,str_group_name);
end loop;
end;。

相关文档
最新文档