oracle使用数据泵导出和导入
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 数据泵导出和导入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的数据泵。
⽹上有很多关于此的内容,但很多都是复制粘贴别⼈的,导致很多⼩伙伴想要使⽤的时候不能直接上⼿,所以这篇⽂章⼀定能让你更清晰的理解数据泵。
开始之前王⼦先介绍⼀下⾃⼰的环境,这⾥使⽤的是⽐较常⽤的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提供了以下工具和功能:
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⽂件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数据泵进⾏导出导⼊的⽅法⼀、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 必须是命令行中的第一个参数。
数据泵导入导出步骤(从sqlplus登录到导入过程)
1、首先建立目录:create directory 目录名称as '数据库服务器上的一个目录',如:create directory 别名as 'd:\服务器目录名';将导入或导出的文件放在这个目录下2、导出及导入以SID=orcl,导出dmp的账号为test,导入dmp的账号为test为例。
若将数据从sfz中导出:expdp test/test@orcl directory=别名dumpfile=导出文件名导入到test中:impdp test/test@orcl directory=别名dumpfile=导出文件名.dmp导入到处用户名不一样时,做个映射,一样时,不用写remap_schema=test:test111g版本导出,导入到10g具体如下:导出脚本(11G):expdp test109/test109@orcl directory=expdp dumpfile=test10930bak.dmp logfile=mydb.log filesize=200m full=y version=10.2.0.1.0version号一定要哈导入脚本(10G):impdp shl1017/shl1017 directory=expdpdumpfile=TEST10930BAK.dmp version=10.2.0.1.0 REMAP_SCHEMA=test109:shl1017各参数对应的数据你根据自己的修改下2015-11-24下午数据泵方式导入zh.dmp过程:1、建立目录(expnc_dir为别名)create directory expnc_dir as 'E:\ncdatabak';2、导入数据impdp system/oracle@orcl directory=expnc_dir dumpfile=zh.dmp;3、根据错误日志文件(E:\ncdatabak目录下),建立用户、临时空间、用户空间a、删除用户及空间(再次导入的时候使用)drop user zh cascade;DROP TABLESPACE EAS_D_ZH_STANDARD INCLUDING CONTENTS AND DATAFILES;DROP TABLESPACE temp_zh INCLUDING CONTENTS AND DATAFILES;b、建立空间create tablespace EAS_D_ZH_STANDARDlogging datafile 'D:\app\Administrator\oradata\orcl\EAS_D_ZH_STANDARD.dbf'size 5gautoextend onnext 100m maxsize UNLIMITEDextent management local;c、建临时空间create temporary tablespace temp_zhtempfile 'D:\app\Administrator\oradata\orcl\temp_zh.dbf'size 100mautoextend onnext 32m maxsize UNLIMITEDextent management local;d、修改自动增长的太小alter database datafile 'D:\app\Administrator\oradata\orcl\EAS_D_ZH_STANDARD.dbf' autoextend on next 100m maxsize UNLIMITED;e、建用户create user zh identified by zhdefault tablespace EAS_D_ZH_STANDARDtemporary tablespace temp_zh;f、授权grant dba,connect,resource to zhg、导入数据impdpzh/zh directory=expnc_dir dumpfile=ZH.dmpremap_schema=zh:zhremap_tablespace=EAS_D_ZH_STANDARD:EAS_D_ZH_STANDARD(注意不带;)或impdp zh/zh@orcl directory=expnc_dir dumpfile=zh.dmp;注意:a、temp表空间不能自动扩展,所以建了一个有自动扩展的空间temp_zhb、出错的时候需要删除用户、表空间、临时空间再重新建立、再导入Oracle命令(一):Oracle登录命令()1、运行SQLPLUS工具C:\Users\wd-pc>sqlplus2、直接进入SQLPLUS命令提示符C:\Users\wd-pc>sqlplus /nolog3、以OS身份连接C:\Users\wd-pc>sqlplus / as sysdba 或SQL>connect / as sysdba4、普通用户登录C:\Users\wd-pc>sqlplus scott/123456 或SQL>connect scott/123456 或SQL>connect scott/123456@servername5、以管理员登录C:\Users\wd-pc>sqlplus sys/123456 as sysdba或SQL>connect sys/123456 as sysdba6、切换用户SQL>conn hr/123456注:conn同connect7、退出exitOracle数据导入导出imp/exp sp2-0734:未知的命令开头'imp 忽略了剩余行默认分类sp2-0734:未知的命令开头'imp 忽略了剩余行默认分类应该是在cmd的dos命令提示符下执行,而不是在sqlplus里面。
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…错误提⽰,并中断数据泵。
expdp 实现原理
expdp 实现原理
expdp 是 Oracle 数据库的一个工具,用于导出数据库中的数据和元数据。
expdp 的实现原理如下:
1. expdp 使用数据库内部的数据泵机制进行数据导出。
数据泵是 Oracle 数据库的一个特性,用于高效地将数据和元数据导出到一个二进制文件中。
2. 在数据导出过程中,expdp 首先会生成一个导出作业,将作业信息保存在数据库中。
作业信息包括要导出的对象、导出选项和导出文件的位置等。
3. 数据泵根据导出作业的信息,从源数据库中读取数据和元数据,并将它们转换成可移植的二进制格式。
这个过程包括数据的解析、压缩和加密等操作。
4. 数据泵将转换后的数据和元数据写入到导出文件中。
导出文件可以是一个本地文件或者一个网络存储设备。
数据泵可以同时将数据导出到多个文件中,以实现并行导出。
5. 数据泵在导出过程中还会生成日志文件,用于记录导出操作的详细信息和错误信息。
6. 当数据导出完成后,expdp 在数据库中标记导出作业为完成状态,并将导出文件的元数据信息保存在数据字典中。
这些信
息可以被 expdp 的导入功能使用,以恢复导出的数据和元数据。
总结来说,expdp 的实现原理是通过数据泵机制从源数据库读
取数据和元数据,并将其转换成可移植的二进制格式,然后写入导出文件中。
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用户下的表,都已经导进来了。
impdp与imp导出的文件格式
impdp(导入数据泵)和imp(导入工具)是Oracle 数据库中用于导入数据的工具。
它们支持不同的导入文件格式,具体如下:
impdp 导入数据泵工具:
impdp 是Oracle 10g 及更高版本引入的高级数据导入工具。
impdp 使用.dmp 文件格式进行导入,这是一种二进制导出文件格式,其中包含了数据库对象、数据和元数据信息。
.dmp 文件是由expdp(数据泵导出)工具创建的。
imp 导入工具:
imp 是Oracle 数据库早期版本(9i及之前)使用的传统数据导入工具。
imp 支持.dmp 文件格式,这与impdp 使用的.dmp 文件格式不同,因为它们在文件结构上有差异。
imp 也支持使用文本文件(通常以.sql 或.dat 文件扩展名保存)导入数据。
这些文本文件包含SQL 语句或平面文本数据。
需要注意的是,虽然imp 仍然存在于Oracle 数据库中,但它已经不再是Oracle 推荐的数据导入方法。
impdp 提供更强大的功能和性能,因此在现代Oracle 数据库环境中,通常建议使用impdp 进行数据导入。
无论你选择使用impdp 还是imp,在进行数据导入之前,都需要确保导出的数据文件与相应的导入工具兼容,并且包含了所需的数据库对象、数据和元数据。
Oracle数据泵方式导入导出
一、EXPDP和IMPDP使用说明Oracle Database 10g引入了最新的数据泵(Data Pump)技术,数据泵导出导入(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种方式.【pump特点】与原有的export和import使用程序相比,oracle的data pump工具的功能特点如下:1) 在导出或者导入作业中,能够控制用于此作业的并行线程的数量。
2) 支持在网络上进行导出导入,而不需要是使用转储文件集。
3) 如果作业失败或者停止,能够重新启动一个data pump作业。
并且能够挂起恢复导出导入作业。
4) 通过一个客户端程序能够连接或者脱离一个运行的作业。
5) 空间估算能力,而不需要实际执行导出。
6) 可以指定导出导入对象的数据库版本。
允许对导出导入对象进行版本控制,以便与低版本数据库兼容。
三、导入导出操作1.导出数据1.1在数据库服务端,用system用户通过sqlplus命令登录到oracle,sqlplus logis/logis@logis_local;1.2在oracle中创建目录,如下:CREATE DIRECTORY LOGIS_EXP_DIR AS 'd:\data';注意:d:\data 这个目录必须是磁盘上实际存在的,可以是其他目录名称和路径。
oracle常用的数据库迁移方法
oracle常用的数据库迁移方法Oracle是一种常用的关系型数据库管理系统,为了满足不同需求,很多时候需要将数据库迁移到其他环境或系统中。
本文将介绍几种常用的Oracle数据库迁移方法。
一、数据泵导入导出数据泵是Oracle提供的一种高效的数据迁移工具,可以将表、视图、存储过程等数据库对象以及数据导出为二进制文件,再通过数据泵导入工具将数据导入到目标数据库中。
数据泵导出可以使用expdp命令,导出的文件可以包含完整的数据库对象和数据,也可以只导出指定的对象。
数据泵导入可以使用impdp命令,将导出的文件恢复到目标数据库中。
二、物理备份恢复物理备份恢复是一种将源数据库的物理文件备份并复制到目标数据库的方法。
这种方法适用于需要将整个数据库迁移到其他环境的情况。
在源数据库上执行备份命令,将数据库的物理文件备份到指定位置。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行恢复命令,将备份文件恢复到目标数据库中。
三、逻辑备份恢复逻辑备份恢复是一种将源数据库中的逻辑数据导出为可读的文本文件,再通过导入工具将数据导入到目标数据库中的方法。
在源数据库上执行逻辑备份命令,将数据导出为文本文件。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行导入命令,将备份文件导入到目标数据库中。
四、数据库链接数据库链接是一种在不同数据库之间进行数据传输和共享的方法。
可以在目标数据库中创建一个链接,链接到源数据库,然后通过SQL语句将数据从源数据库传输到目标数据库。
在目标数据库中创建一个数据库链接,链接到源数据库。
通过SQL语句查询源数据库中的数据,并将数据插入到目标数据库中。
五、GoldenGate数据复制GoldenGate是Oracle提供的一种高性能数据复制工具,可以将源数据库的数据实时复制到目标数据库中。
这种方法适用于需要实时同步数据的场景。
在源数据库和目标数据库上分别安装和配置GoldenGate软件。
在源数据库上配置数据抽取进程,将数据抽取到中间文件。
oracle数据泵导出参数
oracle数据泵导出参数English Answer:Oracle Data Pump Export Parameters.Oracle Data Pump is a powerful tool for exporting and importing data in Oracle databases. It offers a wide range of parameters that can be used to customize the export process. Some of the most commonly used parameters are:DIRECTORY: Specifies the directory where the dump file will be created.DUMPFILE: Specifies the name of the dump file.FULL: Exports all data in the database, including schema and data.INCREMENTAL: Exports only data that has changed since the last export.EXCLUDE: Excludes certain objects from the export.INCLUDE: Includes certain objects in the export.PARALLEL: Exports data in parallel to improve performance.COMPRESSION: Compresses the dump file to reduce its size.JOB_NAME: Specifies a name for the export job.Example:The following example shows how to use Oracle Data Pump to export the entire database to a dump file named"full_export.dmp":expdp full=y directory=DATA_PUMP_DIRdumpfile=full_export.dmp.Chinese Answer:Oracle数据泵导出参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。