oracle使用数据泵导出和导入

合集下载

expdp和impdp语句

expdp和impdp语句

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数据库的数据泵规范和最佳实践。

(Oracle管理)Oracle 数据泵导出和导入

(Oracle管理)Oracle 数据泵导出和导入

(Oracle管理)Oracle 数据泵导出和导入Oracle10g数据导入导出简介Oracle10g引入了DATAPUMP提供的是一种基于服务器的数据提取和恢复的实用程序,DATAPUMP在体系结构和功能上与传统的EXPORT和IMPORT实用程序相比有了显著的提升。

DATAPUMP允许您停止和重启作业,查看运行的作业的状态,及对导入和导出的数据做限制。

注意:数据泵文件与传统的EXP/IMP数据转储文件是不兼容的。

以下是DATAPUMP的几个优点介绍:1.数据泵(DataPump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。

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

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

新的导入/导出工具完全成为了一个客户端应用,通过IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以退出连接,任务会在server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改创建DIRECTORY按表空间导出:Expdpsystem/mingyue@HS2008dumpfile=tablespace_test.dmptablespaces=HS_HIS_DATA,HS_HIS_IDXlogfi le=tablespace_test.logdirectory=TEST_EXPDPjob_name=hs_hisjob6;导出整个数据库:expdpsystem/mingyue@HS2008dumpfile=full.dmpfull=ylogfile=full.logdirectory=TEST_EXPDPjob_name =hs_hisjob6;使用exclude,include导出数据Include导出用户中指定类型的指定对象仅导出hs_his用户下以HISFU开头的所有表包含与表相关的索引,备注等不包含过程等其它对象类型:expdphs_his/handsome@HS2008dumpfile=include_1.dmplogfile=include_1.logdirectory=TEST_EXPDP job_name=job_hisjob7include=TABLE:\"LIKE\'HISFU%\'\";导出hs_his用户下排除HISFU开头的所有表:expdpsystem/mingyue@HS2008schemas=hs_hisdumpfile=include_1.dmplogfile=include_1.logdirecto ry=TEST_EXPDPjob_name=job_hisjob7include=TABLE:\"NOTLIKE\'HISFU%\'\";仅导出hs_his用户下的所有存储过程:expdpsystem/mingyue@HS2008schemas=hs_hisdumpfile=include_1.dmplogfile=include_1.logdirectory= TEST_EXPDPjob_name=job_hisjob7include=PROCEDURE;Exclude导出用户中指定类型的指定对象导出hs_his用户下除出TABLE类型以外的所有对象,如果表不导出那么与表相关的索引,约束等与表有关联的对象类型也不会被导出:expdpsystem/mingyue@HS2008schemas=hs_hisdumpfile=exclude_1.dmplogfile=exclude_1.logdirect ory=TEST_EXPDPjob_name=job_hisjob7exclude=TABLE;导出hs_his用户下排除HISFU开头的所有表:expdphs_his/handsome@HS2008dumpfile=include_1.dmplogfile=include_1.logdirectory=TEST_EXPD Pjob_name=job_hisjob7exclude=TABLE:\"LIKE\'HISFU%\'\";导出hs_his用户下的所有对象,但是对于表类型只导出以HISFU开头的表:expdphs_his/handsome@HS2008dumpfile=include_1.dmplogfile=include_1.logdirectory=TEST_EXPD Pjob_name=job_hisjob7exclude=TABLE:\"NOTLIKE\'HISFU%\'\";注意:1.如果content=data_only那么导出时就不能使用exclude,include 2.LINUX及UNIX对于特殊字符都要加一个转义字符如’()等这些字符在参考连接:/edeed/blog/item/9e3b9e2fb2209c3b1f308915.html http:///hzfsai/blog/item/8f1c2d4c4cd346f7d62afcab.html。

Oracle数据泵的导入与导出实例详解

Oracle数据泵的导入与导出实例详解

Oracle数据泵的导⼊与导出实例详解⽬录前⾔数据泵的导⼊数据泵的导出总结前⾔今天王⼦要分享的内容是关于Oracle的⼀个实战内容,Oracle的数据泵。

⽹上有很多关于此的内容,但很多都是复制粘贴别⼈的,导致很多⼩伙伴想要使⽤的时候不能直接上⼿,所以这篇⽂章⼀定能让你更清晰的理解数据泵。

开始之前王⼦先介绍⼀下⾃⼰的环境,这⾥使⽤的是⽐较常⽤的WIN10系统,Oracle数据库也是安装在本机上的,环境⽐较简单。

数据泵的导⼊导⼊的数据⽂件可能是别⼈导出给你的,也可能是你⾃⼰导出的,王⼦这⾥就是别⼈导出的,⽂件名字是YD.DMP。

在进⾏操作之前,⼀定要问清楚表空间名字,如果表空间命名不统⼀,可能会导致导⼊失败的问题。

所以第⼀步就是建⽴表空间,语句如下:create tablespace VIEWHIGHdatafile 'D:/app/admin/oradata/orcl/VIEWHIGH'size 1M autoextend on next 50M maxsize unlimited;这⾥的datafile路径⼀般选择你本地oracle的数据⽂件路径。

之后,我们可以建⽴⼀个新的⽤户来导⼊数据⽤,这个⽤户名也可以提前问好,最好⽤户名⼀致,否则需要做⼀次⽤户名的映射,这个我们下⽂再说。

建⽴⽤户语句如下:create user DRGS_INITidentified by "vhiadsh"default tablespace VIEWHIGHprofile DEFAULTACCOUNT UNLOCK;建⽴⽤户后需要给⽤户授权,语句如下:--给新建⽤户授DBA权限grant dba to DRGS_INIT;grant unlimited tablespace to DRGS_INIT;接下来我们需要在本地的磁盘中创建⼀个⽂件夹,作为数据泵⽂件夹来使⽤,同时把DMP⽂件放⼊到此⽂件夹下。

oracle data pump用法

oracle data pump用法

oracle data pump用法
Oracle Data Pump是一个用于将数据和元数据从一个数据库导出到另一个数据库的工具。

它是Oracle数据库的一个特性,主要用于数据迁移、备份和恢复等操作。

Data Pump提供了以下工具和功能:
1. expdp:用于将数据和元数据导出到一个文件或目录中,可以选择导出整个数据库或指定的表、分区、用户等。

可以通过参数来指定导出的内容、数据过滤条件、导出方式等。

2. impdp:用于将导出的数据和元数据导入到一个数据库中,可以选择导入整个导出集或指定的对象。

可以通过参数来指定导入的内容、导入方式、处理冲突等。

3. Data Pump作业:可以创建和管理导入导出作业,以便在后台执行。

可以使用expdp和impdp命令启动作业,并可以使用Data Pump作业状态查询视图来跟踪作业的进度和状态。

4. 数据过滤:Data Pump提供了一些选项来过滤导出和导入的数据,例如可以根据表空间、对象名、分区、数据范围等进行过滤,以便只导出或导入特定的数据。

5. 并行处理:Data Pump可以使用多个并行进程来加速导出和导入的过程,以提高性能。

6. 数据转换:Data Pump可以在导出和导入过程中对数据进行
转换,例如可以将字符集进行转换、对数据进行加密等。

总之,通过使用Oracle Data Pump,可以方便地进行数据迁移、备份和恢复等操作,并提供了一些高级功能来满足特定需求。

Oracle_数据泵命令导出导入dmp文件

Oracle_数据泵命令导出导入dmp文件

Oracle_数据泵命令导出导⼊dmp⽂件1. oracle命令⾏登录sqlplus pms/pms 或者 connect / as sysdba2. 查询dup存放⽬录⽬录select * from dba_directories;注意:后⾯的E盘下⾯的dpdump\ 必须把你要导⼊的xxx.dmp⽂件放进该⽂件夹3. 执⾏命令直接导⼊impdp导⼊dmp(注意:必须要有导⼊导出的,可以直接给dba权限)该命令需要在cmd的dos命令窗⼝直接执⾏,⽽不是sqlplus.exefull=y 是导⼊⽂件中全部内容ignore=y相当于,如果没有的表,创建并倒⼊数据,如果已经有的表,忽略创建的,但不忽略倒⼊impdp pms/pms@localhost:1521/orcl dumpfile=pms.dmp full=y directory=DATA_PUMP_DIR3. 执⾏命令直接导出(导出位置为DATA_PUMP_DIR这个位置)expdp pms/pms@localhost:1521/orcl dumpfile=pms.dmp full=y directory=DATA_PUMP_DIR导出⽂件:查看建⽴的⽬录Select * from dba_directories删除⽂件DROP DIRECTORY EXPNC_DIR;赋权Grant read,write on directory wly_dump to wly;导出案例1,按表导出expdp wly/wly directory=wly_dump dumpfile=wly.dmp logfile=scott.log tables=dept,emp导出案例2,按⽤户导出expdp wly/wly directory=wly_dump dumpfile=wly.dmp schemas=wly导出案例3,全库导出,且并⾏导出expdp wly/wly directory=wly_dump dumpfile=full.dmp parallel=4 full=y导⼊案例1,按表导⼊,从wly到wly2impdp wly/wly directory=wly_dump dumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=wly:wly2导⼊案例2,按⽤户导⼊,从wly到wly2impdp wly/wly directory=wly_dump dumpfile=schema.dmp remap_schema=wly:wly2导⼊案例3,全库导⼊impdp wly/wlydirectory=wly_dump dumpfile=full.dmp full=y导⼊案例4,⽆落地⽂件的⽤户拷贝,需要建⽴db linkimpdp wly/wly directory=wly_dump network_link=remote_link remap_schema=wly:wly2。

【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法

【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法

【Oracle】EXPDP和IMPDP数据泵进⾏导出导⼊的⽅法⼀、expdp/impdp和exp/imp客户端⼯具1、exp和imp是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。

服务端⼯具2、expdp和impdp是服务端的⼯具程序,他们只能在oracle服务端使⽤,不能在客户端使⽤。

注意:3、imp只适⽤于exp导出的⽂件,不适⽤于expdp导出⽂件;impdp只适⽤于expdp导出的⽂件,⽽不适⽤于exp导出⽂件。

4、对于10g以上的服务器,使⽤exp通常不能导出0⾏数据的空表,⽽此时必须使⽤expdp导出。

⼆、expdp导出步骤(1)创建导出逻辑⽬录⽤sys管理员登录sqlplus[oracle@shdb02 ~]$ export ORACLE_SID=fp2[oracle@shdb02 ~]$ echo $ORACLE_SIDfp2[oracle@shdb02 ~]$ sqlplusSQL*Plus: Release 11.2.0.4.0 Production on Sat Mar 19 21:53:42 2022Copyright (c) 1982, 2013, Oracle. All rights reserved.Enter user-name: sys as sysdbaEnter password:**********Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing optionsSQL>如果提⽰:Connected to an idle instance. //这个就是错误的信息。

数据泵导入导出详解

数据泵技术是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 数据泵使用技巧

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数据泵常用命令
1前言
expdp和impdp是oracle数据库之间移动数据的工具。

expdp 和impdp只能在数据库服务端使用,不能在客户端使用。

本文简单总结了expdp和impdp常用的命令,详细信息参考oracle官方文档Utilities。

2directory相关SQL语句
3EXPDP导出
3.1说明
1、导数的数据库用户需要拥有对directory_object的读写权限。

2、操作系统中需要已经存在directory_object指定的路径。

3、oracle用户拥有对directory_object指定路径的读写权限。

4、system用户导出用户,会将创建用户和授予系统权限的元数据也
导出,普通用户不能导出这些元数据。

3.2expdp命令示例
3.3以导出一个用户为例
3.4expdp参数说明
4IMPDP导入
4.1说明
1、expdp导出的文件不能使用imp导入,只能通过impdp导入数据库。

2、导入时遇到已存在的对象,默认会跳过这个对象,继续导入其他对象。

3、导入时应确认dmp文件和目标数据库的tablespace、schema是否对应。

4、导入dmp文件时,应确定dmp文件导出时的命令,以便顺利导入数据。

4.2impdp命令示例
4.3以导入dmp文件中的所有数据为例
4.4impdp参数说明。

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)。

使用数据泵导出和导入几乎所有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注意:数据库不建立完备的备份,因为在导出文件中没有灾难发生时的最新数据。

但是对于较小的数据库和个别的表空间的导出,数据导出仍然是一个可行的备份工具。

三.数据泵的组成部分数据泵技术主要有三个以下部件组成a.DBMS_DATAPUMP程序包。

这是驱动数据字段元数据装载和卸载的主要引擎。

DBMS_DATAPUMP程序包包括数据泵技术的核心部分,此核心部分以过程的形式出现,实际驱动数据装载和卸载。

b.DBMS_METADATA。

为了提取并修改元数据,Oracle提供了DBMS_METADATA程序包。

c.命令行客户机。

两个实用程序-------expdp和impdp进行导出和导入工作。

四.数据泵文件对于数据泵操作,可以使用三种类型的文件:a.转储文件:此文件存储表数据已经被装载或卸载的原数据b.日志文件:记录数据泵操作的消息和结果c.SQL文件:数据泵使用一种特殊的参数sqlfile,把导入作业中要执行的所有DDL语句写入一个文件中。

数据泵并不实际执行SQL,它仅仅是将DDL语句写入由SQLFILE参数制定的文件中。

1.使用目录对象数据泵作业在服务器上(而不是启动左右的客户机上)创建其所有的转储文件。

Oracle后台进程代表Oracle的拥有者,负责为所有转储文件设置I/O。

这意味着从安全角度讲,你不能让用户在服务器上指定绝对路径,除此之外还存在安全措施等问题。

为了避免这些类型的问题,数据泵使用目录对象。

目录对象(directory object)被称为是数据泵映射到一个特定操作系统目录的对象,例如,一个目录对象dump_dir可以指向服务器上/u01/app/oracle/admin/export目录。

然后通过简单的dump_dir目录对象名,访问该目录。

Oracle会创建一个默认的目录对象DATA_PUMP_DIR。

改默认的对象目录由oracle在以下位置自动创建:a)ORACLE_BASE/admin/sidb)ORACLE_HOME/admin/sid如果未建立自己的目录对象,oracle将使用默认的目录对象DATA_PUMP_DIR,并将转储文件,日志文件,SQL文件写到里面。

要想了解默认的DATA_PUMP_DIR,可以使用基于DBA_DIRECTORIES视图查询。

SELECT * FROM DBA_DIRECTORIES只有拥有SYS和SYSTEM权限的用户才能够使用默认目录对象DATA_PUMP_DIR。

因此,SYSTEM用户可以启动数据泵作业,而不用提供目录名。

其他,未授权的用户能够使用数据泵导出或导入前,DBA(或者有CREATE ANY DIRECTORY权限的用户)必须创建一个目录对象并授予相应的权限。

CREATE OR REPLACE DIRECTORY directoy_name as ‘/u/test/oradata’授予权限:GRANT READ, WRITE ON DIRECTORY directoy_name TO user_name之后所有的数据泵导出或导入作业均可使用DIRECTORY参数指定目录如:DIRECTORY = directoy_name, 如果用户视图使用expdp或impdp没有指定目录对象将报错。

在实际的作业中,可以通过以下方式指定目录对象:a)DIRECTORY参数:在一个数据泵导出作业中,可以使用DIRECOTY参数指定对象名;$ expdp hr/hr DIRECOTY=dump_dir……b)DIRECOTY:FILE表示法:为替代使用DIRECTORY参数,可以讲目录对象包含在一个特定的数据泵文件中(转储,日志,SQLFILE)。

使用冒号(:)隔开文件说明中的目录和个别文件名;$ expdp hr/hr LOGFILE=dump_dir:test.log……c)DATA_PUMP_DIR环境变量:可以使用环境变量DATA_PUMP_DIR指向服务器的目录对象。

使用export命令,$ EXPORT DATA_PUMP_DIR= dump_dir指定之后,就不需要在作业中再指定DIRECTORY参数了。

2.文件位置的优先次序由于存在几种指定目录的方法,则究竟使用哪种,有一定的优先次序a)Oracle首先检查是否将目录包含在一个与文件有关的参数内b)第二个检查是否存在DIRECTORY参数c)第三个检查是否使用环境变量d)最后检查默认的DATA_PUMP_DIR目录对象五.数据泵的权限所有的oracle用户都可以在默认情况下使用数据泵实用程序,若使用某些高级任务,还必须拥有以下的权限EXP_FULL_DATABASE,IMP_FULL_DATABASE六.数据泵的作业结构数据泵导出和导入实用程序使用几个进程来执行其作业,其中包括关键的主进程和工进程,以及客户机进程和影子进程,下面我们具体来看看各个进程:a)主进程主进程,更精确地说,MCP(Master Control Process),有一个进程名为DMnn,全主进程名用<instance>_DMnn_<pid>格式,每个作业只有一个主进程。

主进程控制整个数据泵作业的执行和顺序。

具体来说,主进程执行一下任务:1.创建并控制左右2.创建并管理工进程(worker process)3.监控作业并记录进程4.维护作业状态并重新启动主表中的信息5.管理必要的文件,包括转储文件集主进程使用一个特殊的表,即主表。

记录导出转储文件中的各数据对象的位置。

主表很像oracle的其他表,它位于每个数据泵导出和导入作业的中心。

主进程维护作业状态并启动主表中的信息。

Oracle在每个导出任务作业开始的时候,在正在运行数据泵作业的用户模式中创建主表。

主表包括了关于当前作业的各类信息,如导出/导入作业中的对象状态,转储文件集的位置,作业的参数以及所有工进程的状态,主表与导出左右的名字相同。

主进程只对导出过程使用主表,在导出结束时,在导出作业的最后一步,主进程将主表的内容写入导出转储文件并自动从数据库中删除主表。

主要导出作业成功完成或者发布了KILL_JOB的命令主表都讲自动删除,但是如果使用STOP_JOB命令停止作业,或者导出作业由于某种原因失败,主表不会被删除,表中包含了要重新启动中断作业的全部必要信息。

b)工进程工进程名为<instance>_DWnn_<pid>。

它是实际执行繁重的装载和卸载数据工作的进程。

主进程创建工进程,并行度决定主进程将创建几个工进程,工进程维护主表的行,在导出和导入各种对象时,他们根据作业状态信息更新主表,完成,未决或失败c)影子进程当客户机登陆Oracle服务器时,数据库创建了一个Oracle进程为数据泵API的请求服务。

此影子进程(shadow process)创建由主表和主进程组成的作业,一旦客户机崩溃,影子进程自动消失d)客户机进程客户机进程调用数据泵API。

可使用两个客户机expdp和impdp,执行导出和导入。

七.数据泵的导出i.数据泵的导出方法1.使用命令行,如:$ expdp system/manager DIRECTORY=dump_dir DUMPFILE =expda1.dmp2.使用参数文件除了在命令行直接指定导出参数外,还可以将他们放入参数文件中,从而在实际的导出作业中调用该参数文件,如:mytext.txtSCHEMA=hrDIRECTORY=dump_dirDUMPFILE=expda1.dmp创建参数文件后,为了导出HR模式,所需要做的就是用PARFILE参数调用:$ expdp PARFILE=mytext.txtii.数据泵导出的方式可以使用下列几种方式执行导出作业1.全导出方式(full export mode)。

当你想要在一个导出回话中导出整个数据库时,使用FULL参数,但是要有EXPORT_FULL_DATABASE的权限。

2.模式方式(schema mode)。

如果只想导出一个单独用户的数据或对象,必须使用SCHEMA参数3.表空间方式(tablespace mode)。

使用表空间方式可以导出一个或多个表空间中的全部表。

如果使用TRANSPORT_TABLESPACE参数,则只导出包含在一个或多个表空间中的对象的元数据,你能够通过先导出元数据,在讲表空间的文件复制到目标服务器,然后再将元数据导入目标服务器。

4.表方式(table mode)。

用TABLES参数,可以导出一个或多个表。

模式方式是数据泵导出作业的默认方式,如果按以下命令执行,则数据泵将自动执行导出SYSTEM的对象$ expdp system/123456iii.数据泵的导出参数数据泵导出实用程序的使用主要是一些参数,为了方便讨论,将参数分成以下几类:1.与文件目录有关的参数2.与导出方式有关的参数3.导出过滤的参数4.与加密有关的参数5.估算参数6.网络链接参数7.交互方式参数8.与作业有关的参数下面分别讨论A.与文件目录有关的参数可以在数据泵的导出参数中指定几个与文件和目录有关的参数,这些参数包括,DIRECTORY, DUMPFILE, FILESIZE, PARFILE, LOGFILE,NOLOGFILE和COMPRESSION参数a.DIRECTORYDirectory参数指向为转储文件和日志文件使用的目录对象,见4.1。

相关文档
最新文档