还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据泵使用EXPDP和IMPDP时应该注意的事项EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件expdp或impdp命令时,可暂不指出用户名/密码@实例名as身份,然后根据提示再输入,如expdpschemas=scottdumpfile=expdp.dmpDIRECTORY=dir;环境windows2003SP2oracle11gR1使用expdp和impdp
1.命令行打开sqlplussqlplus/nologconn/assysdba
2.创建逻辑目录,该命令不会在操作系统创建真正的目录(最好手工先建好),最好以administrator等管理员创建createdirectorydirasd:\dump;//dir名称可以随便命名需要手工创建d:\dump
3.查看管理理员目录(同时查看操作系统中是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select*fromdba_directories;
4.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予grantreadwriteondirectorydirtoscott;
5、导出数据1按用户导expdpscott/tiger@orclschemas=scottdumpfile=expdp.dmpDIRECTORY=dirlogfile=expdp.log2并行进程parallelexpdpscott/tiger@orcldirectory=dirdumpfile=scott
3.dmpparallel=40job_name=scott33按表名导expdpscott/tiger@orclTABLES=empdeptdumpfile=expdp.dmpDIRECTORY=dir;4按查询条件导expdpscott/tiger@orcldirectory=dirdumpfile=expdp.dmpTables=empquery=WHEREdeptno=20;5按表空间导expdpsystem/managerDIRECTORY=dirDUMPFILE=tablespace.dmpTABLESPACES=tempexample;6导整个数据库expdpsystem/managerDIRECTORY=dirDUMPFILE=full.dmpFULL=y;
6、还原数据1导到指定用户下impdpscott/tiger@orclDIRECTORY=dirDUMPFILE=expdp.dmpSCHEMAS=scottlogfile=impdp.log2改变表的ownerimpdpsystem/managerDIRECTORY=dirDUMPFILE=expdp.dmpTABLES=scott.deptREMAP_SCHEMA=scott:system;3导入表空间impdpsystem/managerDIRECTORY=dirDUMPFILE=tablespace.dmpTABLESPACES=example;4导入数据库impdbsystem/managerDIRECTORY=dump_dirDUMPFILE=full.dmpFULL=y;5追加数据impdpsystem/managerDIRECTORY=dirDUMPFILE=expdp.dmpSCHEMAS=systemTABLE_EXISTS_ACTION****************************************************************************************LINUX环境(RHEL5)oracle10g和oracle11g使用expdp和impdp
1.命令行打开sqlplussqlplus/nologconnectsystem/oracle
2.创建逻辑目录,该命令不会在操作系统创建真正的目录(最后手工先建好),最好以system等管理员创建createdirectorydpdata1as/home/oracle/dump;
3.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select*fromdba_directories;
4.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予grantreadwriteondirectorydpdata1toscott;
5.导出数据1按用户导expdpscott/tiger@orclschemas=scottdumpfile=expdp.dmpDIRECTORY=dpdata1;2按表空间导expdpsystem/managerDIRECTORY=dpdata1DUMPFILE=tablespace.dmpTABLESPACES=tempexample;3导整个数据库expdpsystem/managerDIRECTORY=dpdata1DUMPFILE=full.dmpFULL=y;
6.还原数据1导到指定用户下impdpscott/tigerDIRECTORY=dpdata1DUMPFILE=expdp.dmpSCHEMAS=scott;3导入表空间impdpsystem/managerDIRECTORY=dpdata1DUMPFILE=tablespace.dmpTABLESPACES=example;4导入数据库impdbsystem/managerDIRECTORY=dump_dirDUMPFILE=full.dmpFULL=y;*************************************************************************************expdp/impdp不同用户,不同表空间的使用假设a用户的默认表空间是a,导出用户a所有数据SQLconn/assysdbaSQLcreatedirectorydiras/home/oracle/;SQLgrantreadwriteondirectorydirtosystem;$expdpsystem/oracledirectory=dirdumpfile=data.dmpschemas=alogfile=data.logimpdp导入a用户所有数据到b,并且转换表空间a为b SQLconnsys/assysdbaSQLcreatedirectorydiras/home/oracle/;SQLgrantreadwriteondirectorydirtosystem;$impdpsystem/oracledirectory=dirdumpfile=data.dmpremap_tablespace=a:bremap_schema=a:blogfile=data.log解释remap_schema=a:b将数据的schema从a转换为bremap_tablespace=a:b将数据的tablespace从a转换为b注意如果oracle是10g的,要加参数EXCLUDE=TABLE_STATISTICS选项将table_statistics对象过滤否则会出现数据泵导入中table_statistics长时间等待、用impdp导入,检查table_statistics时等待了N长时间总结执行impdp时无需创建b用户,在导入时会自动创建并改名用户a为b(拥有a的所有权限等),自动设置默认表空间为转换后的表空间b如果有多个表空间需要转换,则使用多个remap_tablespace=源目标字段此种方法只限于支持oracle10g以上版本数据泵导入中table_statistics长时间等待问题用impdp导入,检查table_statistics时等待了N长时间网上说这是oracle10Gimpdp的一个bug,命令中若定义了remap_schema项,也就是原用户名和导入的用户名不一致,则会有这个问题网上提供的解决办法是,让导入和导出的用户名一致,或者在导入时通过EXCLUDE=TABLE_STATISTICS选项将table_statistics对象过滤下篇您还未登录!|登录|注册|帮助首页业界移动云计算研发论坛博客下载更多目录视图摘要视图订阅CSDN博客第三方发布工具有奖调查 CSDN目录树调整公告 低价抢购开源中国论坛门票 CSDN博客第三期最佳移动开发博主评选 专访沈逸技术,不存在有前途没前途之分Oracle数据泵详解分类Oracle数据备份2012-09-1110:254756人阅读评论0收藏举报oracle作业数据库schemaobjectstatistics
一、EXPDP和IMPDP使用说明OracleDatabase10g引入了最新的数据泵DataDump技术,数据泵导出导入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命令行选项,可通过expdphelp=y查看E:\empexpdphelp=yExport:Release
10.
2.
0.
1.0-Productionon星期日035月200917:54:49Copyrightc20032005Oracle. Allrightsreserved.数据泵导出实用程序提供了一种用于在Oracle数据库之间传输数据对象的机制该实用程序可以使用以下命令进行调用: 示例:expdpscott/tigerDIRECTORY=dmpdirDUMPFILE=scott.dmp您可以控制导出的运行方式具体方法是:在expdp命令后输入各种参数要指定各参数请使用关键字: 格式: expdpKEYWORD=value或KEYWORD=value1value
2...valueN 示例:expdpscott/tigerDUMPFILE=scott.dmpDIRECTORY=dmpdirSCHEMAS=scott 或TABLES=T1:P1T1:P2如果T1是分区表USERID必须是命令行中的第一个参数关键字 说明默认------------------------------------------------------------------------------ATTACH 连接到现有作业例如ATTACH[=作业名]COMPRESSION 减小有效的转储文件内容的大小 关键字值为:METADATA_ONLY和NONECONTENT 指定要卸载的数据其中有效关键字为: ALLDATA_ONLY和METADATA_ONLYDIRECTORY 供转储文件和日志文件使用的目录对象DUMPFILE 目标转储文件expdat.dmp的列表 例如DUMPFILE=scott
1.dmpscott
2.dmpdmpdir:scott
3.dmpENCRYPTION_PASSWORD 用于创建加密列数据的口令关键字ESTIMATE 计算作业估计值其中有效关键字为: BLOCKS和STATISTICSESTIMATE_ONLY 在不执行导出的情况下计算作业估计值EXCLUDE 排除特定的对象类型例如EXCLUDE=TABLE:EMPFILESIZE 以字节为单位指定每个转储文件的大小FLASHBACK_SCN 用于将会话快照设置回以前状态的SCNFLASHBACK_TIME 用于获取最接近指定时间的SCN的时间FULL 导出整个数据库NHELP 显示帮助消息NINCLUDE 包括特定的对象类型例如INCLUDE=TABLE_DATAJOB_NAME 要创建的导出作业的名称LOGFILE 日志文件名export.logNETWORK_LINK 链接到源系统的远程数据库的名称NOLOGFILE 不写入日志文件NPARALLEL 更改当前作业的活动worker的数目PARFILE 指定参数文件QUERY 用于导出表的子集的谓词子句SAMPLE 要导出的数据的百分比;SCHEMAS 要导出的方案的列表登录方案STATUS 在默认值0将显示可用时的新状态的情况下 要监视的频率以秒计作业状态TABLES 标识要导出的表的列表-只有一个方案TABLESPACES 标识要导出的表空间的列表TRANSPORT_FULL_CHECK 验证所有表的存储段NTRANSPORT_TABLESPACES要从中卸载元数据的表空间的列表VERSION 要导出的对象的版本其中有效关键字为: COMPATIBLELATEST或任何有效的数据库版本 下列命令在交互模式下有效注:允许使用缩写 命令 说明------------------------------------------------------------------------------ADD_FILE 向转储文件集中添加转储文件CONTINUE_CLIENT 返回到记录模式如果处于空闲状态将重新启动作业EXIT_CLIENT 退出客户机会话并使作业处于运行状态FILESIZE 后续ADD_FILE命令的默认文件大小字节HELP 总结交互命令KILL_JOB 分离和删除作业PARALLEL 更改当前作业的活动worker的数目 PARALLEL=worker的数目START_JOB 启动/恢复当前作业STATUS 在默认值0将显示可用时的新状态的情况下 要监视的频率以秒计作业状态 STATUS[=interval]STOP_JOB 顺序关闭执行的作业并退出客户机 STOP_JOB=IMMEDIATE将立即关闭 数据泵作业1)ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名job_name用于指定导出作业名.注意如果使用ATTACH选项在命令行除了连接字符串和ATTACH选项外不能指定任何其他选项示例如下:Expdpscott/tigerATTACH=scott.export_job2)CONTENT该选项用于指定要导出的内容.默认值为ALLCONTENT={ALL|DATA_ONLY|METADATA_ONLY}当设置CONTENT为ALL时将导出对象定义及其所有数据.为DATA_ONLY时只导出对象数据为METADATA_ONLY时只导出对象定义Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dumpCONTENT=METADATA_ONLY3)DIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称.需要注意目录对象是使用CREATEDIRECTORY语句建立的对象而不是OS目录Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dump建立目录:SQLcreatedirectorydump_dirasd:\dump;目录已创建SQLgrantreadwriteondirectorydump_dirtoscott;授权成功查询创建了那些子目录:SELECT*FROMdba_directories;4)DUMPFILE用于指定转储文件的名称默认名称为expdat.dmpDUMPFILE=[directory_object:]file_name[….]Directory_object用于指定目录对象名file_name用于指定转储文件名.需要注意如果不指定directory_object导出工具会自动使用DIRECTORY选项指定的目录对象Expdpscott/tigerDIRECTORY=dump1DUMPFILE=dump2:a.dmp
5.)ESTIMATE指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKSEXTIMATE={BLOCKS|STATISTICS}设置为BLOCKS时oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间设置为STATISTICS时根据最近统计值估算对象占用空间Expdpscott/tigerTABLES=empESTIMATE=STATISTICSDIRECTORY=dumpDUMPFILE=a.dump
6.)EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间默认值为NEXTIMATE_ONLY={Y|N}设置为Y时导出作用只估算对象所占用的磁盘空间而不会执行导出作业为N时不仅估算对象所占用的磁盘空间还会执行导出操作.Expdpscott/tigerESTIMATE_ONLY=yNOLOGFILE=y
7.)EXCLUDE该选项用于指定执行操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause][….]Object_type用于指定要排除的对象类型name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dupEXCLUDE=VIEW8)FILESIZE指定导出文件的最大尺寸默认为0表示文件尺寸没有限制
9.FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmpFLASHBACK_SCN=35852310)FLASHBACK_TIME指定导出特定时间点的表数据FLASHBACK_TIME=”TO_TIMESTAMPtime_value”Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmpFLASHBACK_TIME=“TO_TIMESTAMP’25-08-200414:35:00’’DD-MM-YYYYHH24:MI:SS’”11)FULL指定数据库模式导出默认为NFULL={Y|N}为Y时标识执行数据库导出.12)HELP指定是否显示EXPDP命令行选项的帮助信息默认为N当设置为Y时会显示导出选项的帮助信息.Expdphelp=y13)INCLUDE指定导出时要包含的对象类型及相关对象INCLUDE=object_type[:name_clause][…]14)JOB_NAME指定要导出作用的名称默认为SYS_XXXJOB_NAME=jobname_string15)LOGFILE指定导出日志文件文件的名称默认名称为export.logLOGFILE=[directory_object:]file_nameDirectory_object用于指定目录对象名称file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmplogfile=a.log16)NETWORK_LINK指定数据库链名如果要将远程数据库对象导出到本地例程的转储文件中必须设置该选项.17)NOLOGFILE该选项用于指定禁止生成导出日志文件默认值为N.18)PARALLEL指定执行导出操作的并行进程个数默认值为119)PARFILE指定导出参数文件的名称PARFILE=[directory_path]file_name20)QUERY用于指定过滤导出数据的where条件QUERY=[schema.][table_name:]query_clauseSchema用于指定方案名table_name用于指定表名query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLYEXTIMATE_ONLYTRANSPORT_TABLESPACES等选项同时使用.Expdpscott/tigerdirectory=dumpdumpfiel=a.dmpTables=empquery=’WHEREdeptno=20’21)SCHEMAS该方案用于指定执行方案模式导出默认为当前用户方案.22)STATUS指定显示导出作用进程的详细状态默认值为023)TABLES指定表模式导出TABLES=[schema_name.]table_name[:partition_name][…]Schema_name用于指定方案名table_name用于指定导出的表名partition_name用于指定要导出的分区名.24)TABLESPACES指定要导出表空间列表25)TRANSPORT_FULL_CHECK该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式默认为N.当设置为Y时导出作用会检查表空间直接的完整关联关系如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移将显示错误信息.当设置为N时导出作用只检查单端依赖如果搬移索引所在表空间但未搬移表所在表空间将显示出错信息如果搬移表所在表空间未搬移索引所在表空间则不会显示错误信息.26)TRANSPORT_TABLESPACES指定执行表空间模式导出27)VERSION指定被导出对象的数据库版本默认值为COMPATIBLE.VERSION={COMPATIBLE|LATEST|version_string}为COMPATIBLE时会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.
四、EXPDP用法使用EXPDP工具时其转储文件只能被存放在DIRECTORY对象对应的OS目录中而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.CREATEDIRECTORYdump_dirAS‘c:\emp’;GRANTREADWRITEONDIRECTORYdump_dirTOscott;
1、导出表Expdpscott/tigerDIRECTORY=dump_dirDUMPFILE=dept.dmpTABLES=dept 注在unix下要注意directory目录的读写权限问题,如 查看dump_dir所在的目录用sys用户查看数据字典dba_directories 更该该文件夹的权限chown–Roracle:dba/exp问题解决
2、导出方案expdpscott/tigerdirectory=dump_dirdumpfile=schema.dmplogfile=schema.logschemas=system
3、导出表空间expdpscott/tigerdirectory=dump_dirdumpfile=tb.dmplogfile=tb.logtablespaces=users
4、导出数据库Expdpsystem/managerDIRECTORY=dump_dirDUMPFILE=full.dmpFULL=YExpdpscott/tigerDIRECTORY=dump_dirDUMPFILE=full.dmpFULL=Y 注提示scott用户没有相应的权限,给scott相应的权限或使用system来做全库导出SQLgrantexp_full_databasetoscott;Grantsucceeded.然后在做全库的导出
五、IMPDP参数IMPDP与EXPDP的不同参数:
1、REMAP_DATAFILE该选项用于将源数据文件名转变为目标数据文件名在不同平台之间搬移表空间时可能需要该选项.REMAP_DATAFIEL=source_datafie:target_datafile
2、REMAP_SCHEMA该选项用于将源方案的所有对象装载到目标方案中.REMAP_SCHEMA=source_schema:target_schema
3、REMAP_TABLESPACE将源表空间的所有对象导入到目标表空间中REMAP_TABLESPACE=source_tablespace:target:tablespace
4、REUSE_DATAFILES该选项指定建立表空间时是否覆盖已存在的数据文件.默认为NREUSE_DATAFIELS={Y|N}
5、SKIP_UNUSABLE_INDEXES指定导入是是否跳过不可使用的索引默认为N
6、SQLFILE指定将导入要指定的索引DDL操作写入到SQL脚本中SQLFILE=[directory_object:]file_nameImpdpscott/tigerDIRECTORY=dumpDUMPFILE=tab.dmpSQLFILE=a.sql
7、STREAMS_CONFIGURATION指定是否导入流元数据StreamMatadata默认值为Y.
8、TABLE_EXISTS_ACTION该选项用于指定当表已经存在时导入作业要执行的操作默认为SKIPTABBLE_EXISTS_ACTION={SKIP|APPEND|TRUNCATE|FRPLACE}当设置该选项为SKIP时导入作业会跳过已存在表处理下一个对象;当设置为APPEND时会追加数据为TRUNCATE时导入作业会截断表然后为其追加新数据;当设置为REPLACE时导入作业会删除已存在表重建表并追加数据注意TRUNCATE选项不适用与簇表和NETWORK_LINK选项
9、TRANSFORM该选项用于指定是否修改建立对象的DDL语句TRANSFORM=transform_name:value[:object_type]Transform_name用于指定转换名其中SEGMENT_ATTRIBUTES用于标识段属性物理属性存储属性表空间日志等信息STORAGE用于标识段存储性VALUE用于指定是否包含段属性或段存储属性object_type用于指定对象类型.Impdpscott/tigerdirectory=dumpdumpfile=tab.dmpTransform=segment_attributes:n:table
10、TRANSPORT_DATAFILES该选项用于指定搬移空间时要被导入到目标数据库的数据文件TRANSPORT_DATAFILE=datafile_nameDatafile_name用于指定被复制到目标数据库的数据文件Impdpsystem/managerDIRECTORY=dumpDUMPFILE=tts.dmpTRANSPORT_DATAFILES=’/user01/data/tbs
1.f’
六、IMPDP用法
1、导入表impdphsiufo/hsiufodirectory=dump_dirdumpfile=full.dmptables=scott.empremap_schema=scott:scott注上图为为有一个全库的逻辑备份full.dmp,然后删除用户scott的emp表,在full.dmp中导入emp到用户scottimpdphsiufo/hsiufodirectory=dump_dirdumpfile=full.dmptables=scott.testremap_schema=scott:system第一种方法表示将EMP表导入到SCOTT方案中第二种方法表示将test表导入的SYSTEM方案中.注意如果要将表导入到其他方案中必须指定REMAPSCHEMA选项.
2、导入方案impdphsiufo/hsiufodirectory=dump_dirdumpfile=full.dmpschemas=scottImpdpsystem/managerDIRECTORY=dump_dirDUMPFILE=schema.dmpSCHEMAS=scottREMAP_SCHEMA=scott:system
3、导入表空间Impdpsystem/managerDIRECTORY=dump_dirDUMPFILE=tablespace.dmpTABLESPACES=user
014、导入数据库Impdpsystem/managerDIRECTORY=dump_dirDUMPFILE=full.dmpFULL=y。