数据泵详解及案例

合集下载

oralce10g数据泵技术讲解

oralce10g数据泵技术讲解

认识数据泵
数据泵技术相对应的工具是Data Pump Export和Data Pump Import。它的功 能与EXP和IMP类似,不过功能和效率差异巨大,或者说基本没什么相似的地 方,并且EXP生成的dump文件与EXPDP生成的dump文件也不兼容。 下面列举data pump的主要特性(包括单不限于) 支持并行处理导入、导出任务 支持暂停和重新导入、导出任务 支持通过database link方式导出或导入远端数据库中对象 支持在导入时通过REMAP_SCHEMA、REMAP_DATAFILE、 REMAP_TABLESPACE几个参数实现导入过程中自动修改对象属主、 数据文件或所在表空间 导入、导出时提供了非常细粒度的对象控制。IMP/EXP时最多控制是 否导入索引、约束、授权信息等有限的对象类型,而在Dta Pump中不 仅可以精确到对象类型,通过INCLUDE或EXCLUDE两个参数,甚至 可以详细指定是否包含或不包含某个对象。 服务端的工具
调用方式2 调用方式
[oracle@sure datapumptest]$ more test1.par DIRECTORY=DUMP_FILE_DIR DUMPFILE=test1.dmp LOGFILE=test1.log TABLES=(JOBS,EMPLOYEES)
调用方式2 调用方式
[oracle@sure datapumptest]$ expdp hr/hr parfile=test1.par Export: Release 10.2.0.1.0 - Production on Tuesday, 19 October, 2010 16:14:52 Copyright (c) 2003, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Starting "HR"."SYS_EXPORT_TABLE_01": hr/******** parfile=test1.par Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 128 KB Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type TABLE_EXPORT/TABLE/COMMENT Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type TABLE_EXPORT/TABLE/TRIGGER Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS . . exported "HR"."EMPLOYEES" 15.76 KB 107 rows . . exported "HR"."JOBS" 6.609 KB 19 rows Master table "HR"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded ****************************************************************************** Dump file set for HR.SYS_EXPORT_TABLE_01 is: /home/oracle/datapumptest/test1.dmp Job "HR"."SYS_EXPORT_TABLE_01" successfully completed at 16:15:07

第10章 Oracle数据泵技术

第10章 Oracle数据泵技术

第10章 Oracle数据泵技术
数据泵的目录对象(续)。

如果使用SYS用户可以直接创建数据泵目录。
SQL> create directory pump_dir as 'f:\pump';
目录已创建。

我们创建了一目录。该目录可以给其他用户使用,但是必须将读、写该目录的权 限赋予用户,我们可以将该目录的读、写权赋予SCOTT用户,如下所示。
第10章 Oracle数据泵技术
数据泵导入数据库实例。


Oracle数据泵导入实用程序(IMPDP)将备份的数据导入整个数 据库、特定的模式、特定的表或者特定的表空间,使用IMPDP也 可以在不同平台的数据库之间迁移表空间。IMPDP实用程序通过 各种参数支持对数据过滤以及对元数据的过滤,而元数据的过滤 可以有效控制要导入的对象类型,如导入表、索引还是授权等等。 使用数据泵导入实用程序与数据泵导出实用程序一样可以使用 DIRECTORY、PARFILE、DUMPFILE和LOGFILE等参数,但是正如 ADD_FILE是数据泵导出EXPDP实用程序专有的一样,SQLFILE参 数也是数据泵导入IMPDP实用程序所专有的。在执行数据泵导入 作业时,往往需要从备份数据文件中途提取DDL语句,此时需要 使用SQLFILE。
SQL> grant read on directory pump_dir to scott;
授权成功。
第10章 Oracle数据泵技术
数据泵导入导操作实例:


1.导出整个数据库,我们使用SYSTEM用户登录数据库,限制备份 的数据文件的大小为100M,一旦备份数据文件满,则自动创建一 个新的备份文件,使用了替换变量%U来实现备份文件的自动创 建,其中NOLOGFILE=Y即不记录备份过程。 F:\>expdp system/oracle@orcl dumpfile = pump_dir:mydb3_%u.dat filesize = 100m nologfile = y job_name =tom full = y。 2.导出一个模式 我们导出SCOTT模式,在下例中没有SCHEMA参数,但是默认导 出登录数据库时的模式对象。 D:\>expdp scott/tiger@orcl dumpfile=pump_dir:scottschema.dmp logfile =pump_dir:scottschema.log

第25章 数据泵导入

第25章 数据泵导入

数据泵备份与恢复
数据泵导入(IMPDP)数据库实例 (3)导入指定的表 使用IMPDP导入特定的表使用TABLES参数,该参数后是要导 入的表对象的列表,如果有多个表使用,逗号分隔。我们使用 了参数TABLE_EXISTS_ACTION参数,设置 TABLE_EXISTS_ACTION=REPLACE,如果该表存在则先删 除在加载数据。 例子25-38 导入特定的表对象。 D:\>impdp scott/tiger@orcl dumpfile=pump_dir:MYDB_TBS_USERSANDSYSTEM_ 01.DAT nologfile=y tables= emp table_exists_action=replace
数据泵备份与恢复
数据泵导入(IMPDP)数据库实例 (2)导入表空间 使用IMPDP导入特定的表空间时,需要有备份表空间文件,需要使用 TABLESPACES参数说明要导入的表空间名,此时实际上是导入表空 间中的所有数据库对象,当然这些工作都由IMPDP自己操作完成,由 于表空间中有表对象,如果当前的数据库中的表空间已有相应的表对 象,则最好告诉IMPDP该怎么做,此时需要参数 TABLE_EXITS_ACTION参数,它的默认值为SKIP即如果表已经存 在则跳过。我们建议使用REPLACE或TRUNCATE,前者表示重建表, 后者表示删除掉当前表中的数据,然后使用备份文件中的表数据进行 加载,但是会跳过所有相关元数据。如下例所示。 例子: 使用IMPDP导入特定的表空间 D:\>impdp system/oracle@orcl dumpfile=pump_dir:MYDB_TBS_USERSANDSYSTEM_01.DA T logfile= tablespaces=users table_exists_action=replace

navicat 数据泵的用法

navicat 数据泵的用法

navicat 数据泵的用法摘要:I.引言A.Navicat 简介B.数据泵的作用II.Navicat 数据泵的用法A.数据泵导入1.连接到数据库2.打开数据泵3.设置常规选项4.预览和运行SQL语句B.数据泵导出1.连接到数据库2.打开数据泵3.设置常规选项4.预览和运行SQL语句III.数据泵的高级用法A.数据过滤和转换1.数据过滤2.数据转换B.数据泵的备份和还原1.备份数据库2.还原数据库IV.结论A.总结数据泵的用法B.展望Navicat的发展正文:avicat是一款功能强大的数据库管理工具,可以用于连接和管理多种类型的数据库。

在数据库管理和操作中,数据泵是一个非常重要的功能。

它可以实现数据的导入和导出,方便数据的备份和迁移。

本文将详细介绍Navicat数据泵的用法。

首先,我们来了解一下Navicat数据泵的导入用法。

数据泵导入需要以下几个步骤:连接到数据库,打开数据泵,设置常规选项,预览和运行SQL语句。

在连接到数据库时,需要输入数据库的连接信息,包括服务器名称、端口号、用户名和密码。

打开数据泵后,我们可以设置工作名称、模式、内容、导入数据等选项。

在预览和运行SQL语句时,可以查看导入数据的SQL语句是否正确,以及数据泵导入过程中可能出现的错误信息。

接下来,我们来介绍一下Navicat数据泵的导出用法。

数据泵导出同样需要以下几个步骤:连接到数据库,打开数据泵,设置常规选项,预览和运行SQL语句。

在连接到数据库时,需要输入数据库的连接信息,包括服务器名称、端口号、用户名和密码。

打开数据泵后,我们可以设置工作名称、模式、内容、导出数据等选项。

在预览和运行SQL语句时,可以查看导出数据的SQL 语句是否正确,以及数据泵导出过程中可能出现的错误信息。

除了基本的导入和导出功能,Navicat数据泵还提供了许多高级功能。

比如,数据过滤和转换功能,可以让我们在导入和导出数据时,对数据进行筛选和转换。

数据泵

数据泵
impdp system/orcl123 directory=dump_dir dumpfile=full.dmp full=y
一、EXPDP和IMPDP介绍
1.数据泵导出(Data Dump Export)
数据泵导出的是Oracle Database 10g新增的功能功能,它使用实用工具EXPDP将数据库对象的元数据(对象结构)或数据导出到
1、以sys登录,建目录并将该目录的读写权利授予SCOTT
connect sys/orcl123 as sysdba
create directory dump_dir as 'd:\dump';
grant read,write on directory dump_dir to scott;
impdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp
(2) 将DEPT,EMP表导入到system方案中。
impdp system/orcl123 directory=dump_dir dumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=scott:sy库是指将存放在转蓄文件中所有的数据库对象及其相关数据装载到数据库中,导入数据库是使用FULL选项来完成的。
注意:导出转蓄文件需要具有DBA角色或是EXP_FULL_DATABASE角色,导入转蓄文件是需要具有DBA角色或是IMP_FULL_DATABASE角
色。
二、使用EXPDP导出数据
EXPDP是服务器端的工具,该工具只能在Oracle服务器端使用,而不能在Oracle客户端使用。数据泵导出包括导出表、导出方案、导出表空间、导出数据库等4种模式。

数据泵导入导出详解

数据泵导入导出详解

数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍。

速度的提高源于使用了并行技术来读写导出转储文件。

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;1) 导出scott整个schema--默认导出登陆账号的schema$ expdpscott/tiger@db_esuiteparfile=/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表$ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logTABLES=DEPT,EMP3) 导出scott下除emp之外的表$ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logEXCLUDE=TABLE:"='EMP'"4) 导出scott下的存储过程$ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.par expdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logINCLUDE=PROCEDURE5) 导出scott下以'E'开头的表$ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.parexpdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logINCLUDE=TABLE:"LIKE 'E%'" //可以改成NOT LIKE,就导出不以E开头的表6) 带QUERY导出$ expdpscott/tiger@db_esuiteparfile=/orahome/expdp.parexpdp.par内容:DIRECTORY=dir_dumpDUMPFILE=scott.dmpLOGFILE=scott.logTABLES=EMP,DEPTQUERY=EMP:"whereempno>=8000"QUERY=DEPT:"wheredeptno>=10 and deptno<=40"注: 处理这样带查询的多表导出, 如果多表之间有外健关联, 可能需要注意查询条件所筛选的数据是否符合这样的外健约束, 比如EMP中有一栏位是deptno, 是关联dept中的主键, 如果"whereempno>=8000"中得出的deptno=50的话, 那么, 你的dept的条件"wheredeptno>=10 and deptno<=40"就不包含deptno=50的数据, 那么在导入的时候就会出现错误.expdp选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下:ATTACH=[schema_name.]job_nameschema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:expdpscott/tiger ATTACH=scott.export_job2. CONTENT该选项用于指定要导出的内容.默认值为ALL.语法如下:CONTENT={ALL | DATA_ONLY |METADATA_ONLY}当设置CONTENT为ALL 时,将导出对象定义及其所有数据; 为DATA_ONLY时,只导出对象数据; 为METADATA_ONLY时,只导出对象定义,示例如下:expdpscott/tiger DIRECTORY=dump DUMPFILE=a.dumpCONTENT=METADATA_ONLY3. DIRECTORY指定转储文件和日志文件所在的目录.语法如下:DIRECTORY=directory_objectdirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录,示例如下:expdpscott/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选项指定的目录对象,示例如下:expdpscott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占用磁盘空间的方法.默认值是BLOCKS.语法如下:EXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间,示例如下:expdpscott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dumpDUMPFILE=a.dump一般情况下, 当用默认值(blocks)时, 日志中估计的文件大小会比实际expdp出来的文件大, 用statistics时会跟实际大小差不多.6. EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为N.语法如下:EXTIMATE_ONLY={Y | N}设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作,示例如下:expdpscott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE该选项用于指定执行操作时要排除的对象类型或相关对象.语法如下:EXCLUDE=object_type[:name_clause][,….]object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用,示例如下:expdpscott/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=scottexclude=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_valuescn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用,示例如下:expdpscott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据.语法如下:FLASHBACK_TIME="TO_TIMESTAMP(time_value)"示例如下:expdpscott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME ="TO_TIMESTAMP('25-08-200414: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][,… ]示例如下:expdpscott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=trigger1.1.2 expdp选项14. JOB_NAME指定要导出作用的名称,默认为SYS_XXX.语法如下:JOB_NAME=jobname_string示例如下:expdpscott/tiger DIRECTORY=dump DUMPFILE=a.dmpINCLUDE=triggerJOB_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_jobExport> status15. LOGFILE指定导出日志文件文件的名称,默认名称为export.log.语法如下:LOGFILE=[directory_object:]file_namedirectory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值,示例如下:expdpscott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.expdp中使用连接字符串和network_link的区别:expdp属于服务端工具,而exp属于客户端工具,expdp生成的文件默认是存放在服务端的,而exp生成的文件是存放在客户端.expdp username/password@connect_string //对于使用这种格式来说,directory使用源数据库创建的,生成的文件存放在服务端。

oracle data pump的一般体系结构

一、介绍Oracle Data Pump是Oracle数据库中用于将数据和元数据从一个数据库导出到另一个数据库的工具。

它是一个非常强大和灵活的工具,可以用来在不同的数据库之间迁移数据,备份和恢复数据,以及进行数据库升级和复制等操作。

二、主要组成部分1. 数据泵作业(Data Pump Job):数据泵作业是数据泵操作的一个实例,它包含了所有需要导出或导入的数据和元数据的信息,以及执行数据泵操作的参数和选项。

2. 数据泵进程(Data Pump Process):数据泵进程是实际执行数据泵操作的进程,它负责读取源数据库中的数据和元数据,并将其写入到目标数据库中。

数据泵进程通常以后台进程的形式存在,可以由数据泵作业来启动和管理。

3. 数据泵引擎(Data Pump Engine):数据泵引擎是数据泵作业的核心组成部分,它负责解析数据泵作业中的参数和选项,调度数据泵进程来执行具体的数据导出和导入操作。

4. 数据泵文件(Data Pump File):数据泵文件是数据泵操作中的重要存储介质,它可以用来存储导出的数据和元数据,以及在导入数据时用作数据源。

数据泵文件通常以二进制格式存储,可以包括数据泵作业的日志、导出的数据文件、导出的元数据文件等。

三、数据泵的工作流程1. 创建数据泵作业:在进行数据泵操作之前,首先需要创建一个数据泵作业,指定需要导出或导入的数据和元数据的信息,以及执行数据泵操作的参数和选项。

2. 启动数据泵作业:一旦数据泵作业创建完成,就可以通过Oracle Data Pump工具或者PL/SQL包来启动数据泵作业,数据泵引擎会根据作业中的参数和选项来调度数据泵进程来执行具体的数据导出和导入操作。

3. 执行数据泵操作:数据泵引擎会根据作业中的参数和选项来调度数据泵进程来执行具体的数据导出和导入操作,数据泵进程会读取源数据库中的数据和元数据,并将其写入到目标数据库中。

4. 完成数据泵作业:一旦所有的数据导出和导入操作全部完成,数据泵作业就会进入完成状态,数据泵引擎会生成数据泵作业的日志,并将其存储到数据泵文件中,以便后续的查看和分析。

数据库数据泵详解

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: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)示例: expdp scott/tigerDUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott或TABLES=(T1:P1,T1:P2), 如果T1 是分区表USERID 必须是命令行中的第一个参数。

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 数据泵详解一、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 必须是命令行中的第一个参数。

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

数据泵详解及案例北京神州泰岳软件股份有限公司2011年5月12日文档属性文档变更文档送呈目录1前言 (5)2准备工作 (6)3导出常见需求案例 (7)3.1全库导出 (7)3.1.1全库导出最简写法 (7)3.1.2全库并行导出到多个文件 (7)3.1.3全库导出到多个路径 (7)3.2按schema导出 (8)3.3按表导出 (8)3.3.1导出普通表 (8)3.3.2导出表分区 (8)3.4导出表空间 (9)3.5部分导出(EXCLUDE与INCLUDE) (9)3.5.1屏蔽部分schema (9)3.5.2屏蔽部分对象 (9)3.5.3屏蔽统计信息 (10)3.5.4INCLUDE对象 (10)3.6带查询条件导出(QUERY) (10)3.7估算导出数据大小 (10)3.8只导出元数据或数据 (11)3.9其他可选参数 (11)3.9.1JOB_NAME参数 (11)3.9.2LOGFILE参数 (11)3.9.3VERSION参数 (11)3.9.4STA TUS参数 (12)3.9.5PARFILE参数 (12)3.9.6SAMPLE参数 (12)4导入常见需求案例 (13)4.1导入到不同SCHEMA中 (13)4.2导入到不同表空间中 (13)4.3将元数据以sql形式写入文本文件 (14)4.4导入时使用新存储属性 (14)4.5导入表存在时的处理 (14)5管理维护任务 (15)6重建数据泵工具 (17)1 前言Oracle 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服务端,不受连接会话是否断开的影响。

数据泵与传统导入导出产生的dump文件互不兼容,即使用EXPDP导出的文件,无法使用IMP导入,而以EXP导出的文件,无法用IMPDP导入。

在实际工作中,值得注意的是源库字符集尽量与目标库字符集相同。

本文档适用于Oracle10.2版本的数据泵。

2 准备工作使用数据泵除了要求数据库用户有足够的系统权限,还需要建立directory与操作系统目录想对应,并授予用户对该对象的读写权限。

执行数据泵程序的数据库用户需要有CREATE SESSION, CREATE TABLE, EXP_FULL_DATABASE, IMP_FULL_DATABASE等几个系统权限。

通过如下命令在数据库中建立directory并与操作系统的目录相对应:CREATE DIRECTORY 自定义名称 AS '系统目录的全路径';GRANT read,write ON DIRECTORY 自定义名称TO 用户;举例如下:CONNECT system/managerCREATE DIRECTORY my_dir AS '/backup';CREATE ROLE expdp_role;GRANT create session, create table TO expdp_role;GRANT read, write ON DIRECTORY my_dir TO expdp_role;GRANT expdp_role TO scott;ALTER USER scott DEFAULT ROLE all;ALTER USER scott QUOTA unlimited ON users;相关视图:dba_sys_privs,dba_role_privs,dba_directories3 导出常见需求案例其中重要参数用红字标出3.1 全库导出3.1.1 全库导出最简写法使用FULL 参数导出全库数据expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp FULL=yDIRECOTRY 是数据库中directory 的名称DUMPFILE 是导出文件名FULL 代表全库导出3.1.2 全库并行导出到多个文件当导出单个文件过大时,可使用多个文件,并配合FILESIZE 参数限制单个文件大小 expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp,demo02.dmp,d emo03.dmp FULL=y FILESIZE=20g PARALLEL=2FILESIZE 是每个导出文件的最大尺寸,可接受单位为b,k,m,g ,默认是b--字节PARALLEL 是并行度,默认为1,当数据库为企业版并且CPU 数目为多个时可设置超过1,与文件个数配合可提高导出速度。

该参数可在导出过程中修改3.1.3 全库导出到多个路径。

如果文件个数无法预估,可使用DUMPFILE=%U ,将自动生成导出文件,如:expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo%U FULL=y FILESI ZE=20g PARALLEL=2有时路径所在文件系统的容量不足以存放导出文件,可以将导出文件分散在多个路径所在文件系统下,如:expdp scott/tiger DUMPFILE=data_pump_dir:demo01.dmp,other_dir:demo02.dmp FULL =y FILESIZE=20g PARALLEL=2注意该语句没有使用DIRECTORY参数,而是在DUMPFILE中设置other_dir为另一个directory,同样需要给用户授予读写权限3.2 按schema导出如果数据库只有少数schema(可简单理解为用户的所有对象),可以使用SCHEMAS 参数进行导出,以提高导出速度并减少问题几率,如:expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp SCHEMAS=s cott,testSCHEMAS为需要导出的用户,用逗号隔开如果导出数据较多,需要分割文件或分散路径,参照3.1全库导出3.3 按表导出3.3.1 导出普通表如果只需要导出个别表,则使用TABLES参数,如:expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp TABLES=test, dept注意导出的默认是当前用户的表,TABLES、SCHEMAS、FULL不可同时使用,如果想导出其他用户的表,需要在表前加用户的名字,如:expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp TABLES=sc ott.test3.3.2 导出表分区如果想导出表的某个分区的数据,使用如下命令:expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp TABLES=test: p2*******3.4 导出表空间expdp scott/tiger DUMPFILE=data_pump_dir:demo01.dmp TABLESPACES=users3.5 部分导出(EXCLUDE与INCLUDE)exclude参数和include参数分别用来屏蔽不需要的数据和导出需要的数据。

当使用exclude屏蔽某对象时,依赖这个对象的其他对象也一并被屏蔽,比如exclude一张表,则其索引和触发器都被屏蔽。

exclude和include参数互斥,无法一起使用,但其语法相同。

3.5.1 屏蔽部分schema例如想要屏蔽scott用户的所有数据,使用如下命令:expdp scott/tiger FULL=y DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp EX CLUDE=SCHEMA:\"like \'SCOTT\'\"exclude参数中的“\”为转义符,在unix系统中使用,是为了正确识别引号。

而windows 中不需要。

“like”也可替换成“=”。

如果屏蔽多个schema,使用如下命令expdp scott/tiger FULL=y DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp EX CLUDE=SCHEMA:\"IN\(\'SCOTT\',\'TKF\'\)\"由上可知,除了逗号,其他符号都需要由转义符“\”来识别。

3.5.2 屏蔽部分对象可以屏蔽的主要对象包括:table,function,package,function,procedure,sequence,grant,view, index,db_link,constraint,ref_constraint,job,statistics等,语法如下:expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp SCHEMAS=s cott EXCLUDE=procedure,function,table:\"IN \(\'TSUMSCHEMA\',\'TSUMALGORITHM \'\)\"其中对象如果名字类似,可以使用通配符“%”,如下:expdp scott/tiger DIRECTORY=data_pump_dir DUMPFILE=demo01.dmp SCHEMAS=s cott EXCLUDE=table:\"like \'TE%\'\"3.5.3 屏蔽统计信息统计信息包含表的平均行长,行数,字段直方图信息等,也是可以用exclude屏蔽的对象。

之所以把它单拿出来,是因为数据泵有时会因为统计信息的问题导致导出时间过长,甚至失败。

相关文档
最新文档