exp imp用法详解
exp及imp的使用方法

exp及imp的使用方法EXP和IMP是英语中常用的缩写,分别表示“经验”(Experience)和“重要”(Important)。
这两个词在日常生活和商务环境中经常被使用,因此了解如何正确地运用它们是非常必要的。
首先,我们来讨论一下EXP(经验)的使用方法。
经验是人们通过实际经历所获得的知识和技能,是在实践中不断积累的。
在简历、面试和职业发展中,经验通常是雇主或招聘人员最关注的因素之一在简历中,写作经验部分时,应该注重强调与目标职位相关的经验。
列出相关的工作经历、实习经验以及参与的项目,尽量用数值和例子来具体说明自己在这些经验中所取得的成绩和贡献。
另外,在撰写工作经验时,可以使用动词来强调自己的才能和责任,如“管理”、“领导”、“协调”等。
在面试中,经验是展示自己适合目标职位的重要方式。
回答问题时,可以根据经验来支撑自己的回答,例如,提供过去在类似情况下的成功经验,并强调自己学到了什么以及如何将这些经验应用到目前的情况中。
在职业发展中,经验可以帮助人们获得更高的职位和更大的责任。
人们可以通过参加培训、进修课程和参与项目或委员会来积累经验。
此外,与其他行业专业人士互动和交流经验,也是拓宽自己视野、增加知识和技能的有效方法。
接下来,我们来谈谈IMP(重要)的使用方法。
重要性通常指事物的价值和影响力。
在个人生活和工作中,了解什么是重要的,以及如何正确地处理和管理重要事务,是成功的关键。
在个人生活中,我们可以使用IMP来优化时间管理。
我们可以确定哪些任务对实现我们的目标和价值观至关重要,并将重要的任务优先考虑。
此外,了解并正确处理家庭、健康和个人关系等方面的重要事务,有助于获得更好的生活质量。
在工作环境中,正确处理重要事务是保持高效和成功的关键。
了解工作的优先级和截止日期,以及与团队成员和上级的沟通,有助于确保重要任务的及时完成。
此外,根据公司的目标和战略,将重要的项目和任务与整体工作计划对齐,有助于确保工作的整体有效性。
exp&imp导入导出

一、导出(exp)和导入(imp)实用程序---------------------------------------------------------------------------- 1二、导出模式 ----------------------------------------------------------------------------------------------------------- 22.1表模式--------------------------------------------------------------------------------------------------------- 22.2用户模式------------------------------------------------------------------------------------------------------ 22.3表空间模式 -------------------------------------------------------------------------------------------------- 22.4完全数据库模式 -------------------------------------------------------------------------------------------- 22.5 导出导入参数 ---------------------------------------------------------------------------------------------- 3三、exp的用法:------------------------------------------------------------------------------------------------------ 33.1导出工具exp交互式命令方式 ------------------------------------------------------------------------- 43.2导出工具exp非交互式命令行方式 ------------------------------------------------------------------- 63.2.1 FULL ------------------------------------------------------------------------------------------------ 63.2.2 OWNER和TABLE ---------------------------------------------------------------------------------- 73.2.3BUFFER和FEEDBACK ----------------------------------------------------------------------------- 83.2.4 FILE和LOG参数-------------------------------------------------------------------------------- 93.2.5 QUERY参数 -------------------------------------------------------------------------------------- 103.2.6 FILESIZE设置导出的数据文件的大小 -------------------------------------------------- 11四、imp用法----------------------------------------------------------------------------------------------------------- 114.1 FROMUSER和TOUSER-------------------------------------------------------------------------------------- 114.2 导入一个完整数据库 ------------------------------------------------------------------------------------ 124.3导入一个或一组指定用户所属的对象 --------------------------------------------------------------- 124.4 导入一个表------------------------------------------------------------------------------------------------- 12一、导出(exp)和导入(imp)实用程序导出实用程序提供了一种简单方法,在Oracle 数据库之间传送数据对象,即使这些数据库位于具有不同硬件和软件配置的平台上。
exp imp命令详解

oracle中exp,imp的使用详解基本语法和实例:1、EXP:有三种主要的方式(完全、用户、表)1、完全:EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y如果要执行完全导出,必须具有特殊的权限2、用户模式:EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC这样用户SONIC的所有对象被输出到文件中。
3、表模式:EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)这样用户SONIC的表SONIC就被导出2、IMP:具有三种模式(完全、用户、表)1、完全:IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y2、用户模式:IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC这样用户SONIC的所有对象被导入到文件中。
必须指定FROMUSER、TOUSER 参数,这样才能导入数据。
3、表模式:EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)这样用户SONIC的表SONIC就被导入。
ORACLE数据库有两类备份方法。
第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。
数据库逻辑备份方法ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。
oracle中expimp备份还原工具的使用详解

oracle中expimp备份还原工具的使用详解Oracle数据库的exp和imp命令是数据库备份和恢复的常用工具。
本文将详细介绍exp和imp命令的用法和具体步骤。
一、exp命令exp命令用于将Oracle数据库中的数据和对象导出到一个二进制文件中,以进行备份或迁移。
以下是exp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。
2. 输入以下命令启动exp工具:其中,username是要导出数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。
3. exp工具启动后,会提示输入导出内容的方式。
可以选择导出全库、特定表或特定用户的数据。
输入相应的选项并按Enter键确定。
4. 接下来,exp工具会要求输入导出的目标文件名。
输入文件名并按Enter键确定。
5. 导出过程将开始执行。
exp工具会逐一导出数据库的数据和对象,并将其存储在目标文件中。
此过程可能需要一些时间,取决于数据库的大小和复杂性。
6. 导出完成后,在命令行中会显示相应的导出信息。
可以根据需要选择是否结束exp工具。
二、imp命令imp命令用于将exp命令导出的二进制文件恢复到Oracle数据库中。
以下是imp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。
2. 输入以下命令启动imp工具:其中,username是要导入数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。
3. imp工具启动后,会提示输入导入内容的方式。
可以选择导入全库、特定表或特定用户的数据。
输入相应的选项并按Enter键确定。
4. 接下来,imp工具会要求输入导入的源文件名。
输入文件名并按Enter键确定。
5. 导入过程将开始执行。
imp工具会读取源文件中的数据和对象,并将其恢复到目标数据库中。
使用exp和imp导入导出指定表

使⽤exp和imp导⼊导出指定表从源数据库导出:这种⽅式,包含创建表,插⼊数据,所以,⽬标应没有这个表exp user1/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2)例如:exp platadmin/plat_8admin@hkserver32 file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)我试了⼀下,在本地不能导出,还是得在服务器上导,在服务器上导很快,⼏⼗万条数据的表,⼀两秒钟就导出完了导⼊到⽬标数据库:imp user2/pwd@server2 file=c:\temp\exp.dmp tables=(table1, table2)例如:导⼊也很快,⼀两秒钟imp platadmin/plat_8admin@orclgis file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)1Oracle就是有这个好处,可以直接将远程的数据导出到本地;或者将本地的数据⽂件导⼊到远程数据库。
⽽SQL SERVER的备份、还原⽂件,⼀定是放在远程服务器本机的。
补充⼀下,如果有许多表,那么以上语句可能会换⾏。
但以上命令是在DOS命令窗⼝执⾏的,命令⾏⽅式,容不得换⾏。
那咋办呢?我的笨办法是将语句拷贝到WORD⽂档,然后将回车换⾏符替换掉。
替换的⽅法:在替换窗⼝,查找内容输⼊ ^p(注意是⼩写),替换内容为空,然后替换即可。
=====================================以 sysdba ⾝份运⾏,导出导⼊指定⽤户所属表:exp ‘sys/123456@Service1 as sysdba’ file=c:\temp\exp.dmp tables=(sde.ISLAND)imp ‘sys/888888@Service2 ’ file=c:\temp\exp.dmp fromuser=sde tables=(ISLAND)=================================================如果表空间的名字不⼀样,会报 ORA-00959 错误,咋办?1、先从源数据库,导出建表脚本(DDL)2、在新库新表空间⾥运⾏这些DDL3、imp,加上fromuser,touser,ignore=Y选项imp 'sys/lt@HPM as sysdba' file=c:\temp\base.dmp fromuser=hydg touser=hpm tables=(org_user,SYS_ONLINE,sys_userRoles,Org_Role,Org_Group,sys_Event) ignore=Y1有关ORA-00959 错误的应对之道,参考⽂章:。
ORACLE导出导入(exp和imp)总结

1.1 EXP AND IMP导入导出的模式a表模式的导入导出b用户模式的导入导出c全库模式的导入导出导出表模式exp system/jaguar@cfp00_cpzb2003 tables=(cp.misywt14,cp.misywt18) file=d:\t8.dmplog=d:\t14t18_exp.log feedback=10000 compress=n用户模式exp system/jaguar@cfp00_cpzb2003 owner=cp file=e:\cp.dmp log=e:\cp_exp.logfeedback=10000 compress=n全库模式exp system/jaguar@bkup full=y filesize=2000M file=(cpzb01.dmp,cpzb02.dmp)log=cpzb_exp.log feedback=10000 compress=n使用参数文件导出(需要在当前路径下执行)exp system/manager@bgd-11_yang1 parfile=t09_exp.part09_exp.par文件内容tables = (test1.misywt09) file=e:\yang\t09.dmp log=e:\yang\t09_exp.log feedback=10000 compress=n快速导出使用参数direct=y recordlength=65535exp system/jaguar@cfp00_cpzb2003 owner=cp file=e:\cp.dmp log=e:\cp_exp.log direct=y recordlength=65535 feedback=10000 compress=n有条件的导出,windowsexp system/ckdb5@ckdb5 tables = (cp962008.misywt40_1) file=t40_96.dmp log=t40_96_exp.log feedback=10000 QUERY='where substr(ckhwh,1,1)="5"'导入表模式imp system/jaguar@cfp99_cpzb fromuser=cp touser=cp tables= (misywt14,misywt18)file=e:\t14t18.dmp log=e:\t14t18_imp.log ignore=y buffer=5120000 commit=yfeedback=10000用户模式imp system/jaguar@cfp99_cpzb fromuser=cp touser=cp file=d:\cp.dmp log=d:\cp_imp.log ignore=y buffer=5120000 commit=y feedback=10000全库模式imp system/jaguar@cfp99_cpzb full=y file=d:\cp.dmp log=d:\cp_imp.log ignore=ybuffer=5120000 commit=y feedback=10000导入大于2G的文件imp system/jaguar@cfp10_cpzbbak filesize=2000M buffer=81920 commyit=y ignore=yfile=(cpzb01.dmp,cpzb02.dmp,cpzb03.dmp,cpzb04.dmp) log=cpzb_imp.log feedback=10000使用参数文件导入(需要在当前路径下执行)imp system/manager@bgd-11_yang1 parfile=t09_imp.part09_imp.par 文件的内容fromuser=test1 touser=test1 tables=(misywt09) file=e:\yang\t09.dmp log=e:\yang\t09_imp.log ignore=y buffer=5120000 commit=y feedback=10000imp步骤说明(1) create table (2) insert data (3) create index (4) create triggers,constraints导出导入常见问题及解决方法1) unix上导出导入,使用多个用户或多个文件时不使用()2) ORACLE不同版本之间的导出导入oracle8.0.4 netwareoracle8.1.5 win2000oracle8.1.7 unix ware 7.1.18.0.4――>8.1.7使用8.0.4从自己导出,使用8.1.5导入8.1.78.1.7――>8.0.4使用8.1.5从8.1.7 导出,使用8.1.5导入8.0.48.1.5――>8.1.7使用8.1.5从自己导出,使用8.1.5导入8.1.78.1.7――>8.1.5使用8.1.7从自己导出,使用8.1.7导入8.1.5oracle8-oracle10之间导入导出的关系1个表的测试oracle8->oracle10test 源数据库目的数据库导出的oracle版本导入的oracle版本文件大小时间结果备注test18 10 8 8 成功有垃圾表BIN$bEheaq87S/q9CiHem/Ty6Q==$0test28 10 8 10 成功test38 10 10 8 失败10无法连接8test48 10 10 10 失败10无法连接8 结论:oracle8->oracle10 导出使用8,导入使用10oracle10->oracle8test 源数据库目的数据库导出的oracle版本导入的oracle版本文件大小时间结果备注test510 8 8 8 成功test610 8 8 10 失败10无法连接8test710 8 10 8 失败8不能读取10得导出文件test810 8 10 10 失败10无法连接8 结论:oracle10->oracle8 导出使用8,导入使用8使用oracle8导出oracle10时,出现错误EXP-00003: 未找到段(10,585868) 的存储定义原因:不能用oracle8导出oracle10。
oracle使用expdp、impdp和exp、imp导入导出表及表结构

oracle使⽤expdp、impdp和exp、imp导⼊导出表及表结构使⽤expdp、impdp和exp、imp时应该注重的事项:1、exp和imp是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
2、expdp和impdp是服务端的⼯具程序,他们只能在oracle服务端使⽤,不能在客户端使⽤。
3、imp只适⽤于exp导出的⽂件,不适⽤于expdp导出⽂件;impdp只适⽤于expdp导出的⽂件,⽽不适⽤于exp导出⽂件。
4、对于10g以上的服务器,使⽤exp通常不能导出0⾏数据的空表,⽽此时必须使⽤expdp导出。
exp、imp导⼊导出sqlplus 进⼊数据库中导出直接在命令⾏下写命令1.导出⾃⼰的表exp userid=scott/tiger@myoral tables=(emp,dept) file=/opt/e1.dmp2.导出其它⽅案的表如果⽤户要导出其它⽅案的表,则需要dba的权限或是exp_full_database的权限,⽐如system就可以导出scott的表exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp3. 导出表的结构exp userid=scott/tiger@accp tables=(emp) file=/opt/e3.dmp rows=n4. 使⽤直接导出⽅式exp userid=scott/tiger@accp tables=(emp) file=/opt/e4.dmp direct=y这种⽅式⽐默认的常规⽅式速度要快,当数据量⼤时,可以考虑使⽤这样的⽅法。
这时需要数据库的字符集要与客户端字符集完全⼀致,否则会报错导出⽅案导出⽅案是指使⽤export⼯具导出⼀个⽅案或是多个⽅案中的所有对象(表,索引,约束...)和数据。
并存放到⽂件中1. 导出⾃⼰的⽅案exp userid=scott/tiger@myorcl owner=scott file=/opt/scott.dmp2. 导出其它⽅案如果⽤户要导出其它⽅案,则需要dba的权限或是exp_full_database的权限,⽐如system⽤户可以导出任何⽅案exp userid=system/manager@myorcl owner=(system,scott) file=/opt/system.dmp导出数据库导出数据库是指利⽤export导出所有数据库中的对象及数据,要求该⽤户具有dba的权限或者是exp_full_database权限增量备份(好处是第⼀次备份后,第⼆次备份就快很多了)exp userid=system/manager@myorcl full=y inctype=complete file=/opt/all.dmp导⼊1. 导⼊⾃⼰的表imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp2. 导⼊表到其它⽤户要求该⽤户具有dba的权限imp_full_database imp userid=system/tiger@myorcl tables=(emp) file=/opt/xx.dmp touser=scott3. 导⼊表的结构,只导⼊表的结构⽽不导⼊数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp rows=n4. 导⼊数据如果对象(如⽐表)已经存在可以只导⼊表的数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp ignore=y导⼊⽅案导⼊⽅案是指使⽤import⼯具将⽂件中的对象和数据导⼊到⼀个或是多个⽅案中。
imp(exp)详细用法

Utilities--exp/imp1.exp/imp简介exp/imp是oracle提供的一个对数据库进行逻辑备份的客户端工具。
利用这个工具可以将数据库按表空间、用户或某些表保存到操作系统下的一个二进制格式的文件里。
这个二进制文件是平台无关的,也就是说可以将windows下的exp文件imp到linux/unix系统中,利用这个特性可以完成某些数据迁移工作。
Exp/imp在操作上可以看成是一个select--create--insert的过程。
exp时select出要导出的数据和保存相关的ddl,imp时执行这个“脚本”(strings dmp文件可以看出其内部包含的就是一些ddl和insert语句)。
要使用Exp/Imp必须运行一次$oracle_home/rdbms/admin 下的catexp.sql 或 catalog.sql script脚本。
在oracle 10g中新提供了一种更加强大的替代工具data pump,但是在实际使用中oracle 9i及以前版本的数据库还是随处可见,所以掌握其用法还是很有必要的。
2.exp/imp导入导出模式exp/imp一共有四种模式:Full、User、Tables、Tablespaces¾Full要执行Full模式的导出,必须具有EXP_FULL_DATABASE的权限。
在Full模式下将导出数据库中所有用户的对象,但是有几个用户是受oracle保护的不能被exp导出(ORDSYS 、____________________________________________________________________________________________________________2008-11-15 唐名杰(beybey911) tangmingjie85@MDSYS 、CTXSYS 、ORDPLUGINS 、LBACSYS)sys用户的对象也不会导出,因此在full 模式导出时属于sys用户的一些触发器之类的对象将会丢失,在导入后应该手工创建。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/lschou520/archive/2008/08/31/2854244.aspxOracle 数据库备份与恢复总结-exp/imp (导出与导入装库与卸库) 收藏1.1 基本命令1. 获取帮助$ exp help=y$ imp help=y2. 三种工作方式(1)交互式方式$ exp // 然后按提示输入所需要的参数(2)命令行方式$ exp user/pwd@dbname file=/oracle/test.dmp full=y // 命令行中输入所需的参数(3)参数文件方式$ exp parfile=username.par // 在参数文件中输入所需的参数参数文件username.par 内容userid=username/userpassword buffer=8192000compress=n grants=yfile=/oracle/test.dmp full=y3. 三种模式(1)表方式,将指定表的数据导出/导入。
导出:导出一张或几张表:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2导出某张表的部分数据$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\”where col1=\’…\’and col2 \<…\”导入:导入一张或几张表$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y(2)用户方式,将指定用户的所有对象及数据导出/导入。
导出:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy)只导出数据对象,不导出数据(rows=n )$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n导入:$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2commit=y ignore=y(3)全库方式,将数据库中的所有对象导出/导入导出:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y导入:$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser21.2 高级选项1. 分割成多个文件以多个固定大小文件方式导出:这种做法通常用在表数据量较大,单个dump文件可能会超出文件系统的限制的情况$ exp user/pwd file=1.dmp,2.dmp,3.dmp,…filesize=1000m log=xxx.log full=y以多个固定大小文件方式导入$ imp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=xxx fromuser=dbuser touser=dbuser2 commit=y ignore=y2. 增量导出/导入// oracle 9i 以后exp 不再支持inctype必须为SYS 或SYSTEM 才可执行增量导出导入增量导出: 包括三个类型:(1)“完全”增量导出(Complete)// 备份整个数据库$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete(2)“增量型”增量导出导出上一次备份后改变的数据。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=incremental(3)“累计型”增量导出(Cumulative)只导出自上次“完全”导出之后数据库中变化了的信息。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=cumulative增量导入:$ imp usr/pwd FULL=y inctype=system/restore/inct ype其中:SYSTEM: 导入系统对象RESTORE: 导入所有用户对象3. 以SYSDBA进行导出/导入1. 用于Oracle 技术支持2. 用于表空间传输例:$ imp \'usr/pwd@instance as sysdba\' tablespaces=xxtransport_tablespace=y file=xxx.dmp datafiles=xxx.dbf$ imp file=expdat.dmp userid=”””sys/password as sysdba””” transport_tablespace=y “datafile=(c:tempapp_data,c:tempapp_index)”4. 表空间传输(速度快)表空间传输是8i 新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成dmp 文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制文件一样快。
1.关于传输表空间有一些规则(10g前):? 源数据库和目标数据库必须运行在相同的硬件平台上。
? 源数据库与目标数据库必须使用相同的字符集。
? 源数据库与目标数据库一定要有相同大小的数据块? 目标数据库不能有与迁移表空间同名的表空间? SYS 的对象不能迁移? 必须传输自包含的对象集? 有一些对象,如物化视图,基于函数的索引等不能被传输(同字节序文件的跨平台可以用更换数据文件的文件头的方法)(10g 支持跨平台的表空间传输,只要操作系统字节顺序相同,就可以进行表空间传输。
需要使用RMAN转换文件格式,略)2. 检测一个表空间是否符合传输标准的方法:SQL > exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true); SQL > select * from sys.transport_set_violations;如果没有行选择,表示该表空间只包含表数据,并且是自包含的。
对于有些非自包含的表空间,如数据表空间和索引表空间,可以一起传输。
3. 简要使用步骤:如果想参考详细使用方法,也可以参考ORACLE联机帮助。
1.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index)SQL > alter tablespace app_data read only; SQL > alter tablespace app_index read only;2.发出EXP命令SQL> host exp userid=”””sys/password as sysdba””” transport_tablespace=y tablespaces=(app_data, app_index)以上需要注意的是·为了在SQL 中执行EXP,USERID 必须用三个引号,在UNIX中也必须注意避免“/”的使用·在816和以后,必须使用sysdba才能操作·这个命令在SQL中必须放置在一行(这里是因为显示问题放在了两行)3.拷贝.dbf数据文件(以及.dmp文件)到另一个地点,即目标数据库可以是cp(unix)或cop y(windows)或通过ftp传输文件(一定要在bin方式)4.把本地的表空间设置为读写$ alter tablespace app_data read write;$ alter tablespace app_index read write;5.在目标数据库附加该数据文件(直接指定数据文件名)(表空间不能存在,必须建立相应用户名或者用fromuser/touser)$ imp file=expdat.dmp userid=”””sys/password as sysdba””” transport_tablespace=y datafiles=(“c:\app_data.dbf,c:\app_index.dbf”) tablespaces=app_data,app_index tts_owners=hr,oe6.设置目标数据库表空间为读写$ alter tablespace app_data read write;$ alter tablespace app_index read write;1.3 优化1. 加快exp速度加大large_pool_size,可以提高exp的速度采用直接路径的方式(direct=y),数据不需要经过内存进行整合和检查. 设置较大的buffer,如果导出大对象,小buffer会失败。
export文件不在ORACLE使用的驱动器上不要export到NFS文件系统UNIX环境:用管道模式直接导入导出来提高imp/exp的性能2. 加快imp速度建立一个indexfile,在数据import完成后在建立索引将import 文件放在不同的驱动器上增加DB_BLOCK_BUFFERS增加LOG_BUFFER用非归档方式运行ORACLE:ALTER DATABASE NOARCHIVELOG; 建立大的表空间和回滚段,OFFLINE其他回滚段,回滚段的大小为最大表的1/2 使用COMMIT=N使用ANALYZE=N单用户模式导入UNIX环境:用管道模式直接导入导出来提高imp/exp的性能3. 通过unix/Linux PIPE管道加快exp/imp速度通过管道导出数据:1.通过mknod -p 建立管道$ mknod /home/exppipe p // 在目录/home下建立一个管道exppipe注意参数p2.通过exp和gzip导出数据到建立的管道并压缩$ exp test/test file=/home/exppipe & gzip < /home/exppipe > exp.dmp.gz$ exp test/test tables=bitmap file=/home/newsys/test.pipe &gzip < /home/newsys/test.pipe > bitmap.dmp.gz3.导出成功完成之后删除建立的管道$ rm -rf /home/exppipe导出脚本:###UNIX下ORACLE数据库通过PIPE管道进行备份###### using "export" and "tar" command to bakup oracle datebase #######trap "" 1 #nohupLOGFILE=/opt/bakup/log/bakup_ora.logexport LOGFILEDUMPDIR=/archlog_node1export DUMPDIRexec >$LOGFILE 2>&1echoecho ' Begin at ' `date`echo# clear old result filecd $DUMPDIRif [ -f exp.dmp.Z ]thenecho "clear old result file"rm exp.dmp.Zfi# make pipemkfifo exp.pipechmod a+rw exp.pipe# gain the dmp.Z filecompress < exp.pipe > exp.dmp.Z &su -u oracle -c "exp userid=ll/ll file=$DUMPDIR/exp.pipe full=y buffer=20000000"echoecho ' exp end at '`date`echo# rm piperm exp.pipe# tar the dmp.Z file to tapemt -f /dev/rmt/0 rewtar cvf /dev/rmt/0 exp.dmp.Zechoecho ' tar end at '`date`echo通过管道导入生成的文件:1.通过mknod -p 建立管道$ mknod /home/exppipe p2.导入生成的压缩文件$ imp test/test file=/home/exppipe fromuser=test touser=macro &gunzip < exp.dmp.gz > /home/exppipe3.删除管道$ rm –fr /home/exppipe4. 全库导入的一般步骤注意:在导出时,需要通过toad或其他工具提取源数据库创建主键和索引的脚本1. 先全库加rows=n 把结构导进去$ imp system/manager file=exp.dmp log=imp.log full=y rows=n indexes=n2. 使业务用户的触发器失效/删除主键和唯一索引spool drop_pk_u.sqlselect 'alter table '||table_name||' drop constraint '||constraint_name||';'from user_constraintswhere constraint_type in ('P','U');/spool offspool disable_trigger.sqlselect 'alter trigger '||trigger_name||' disable;'from user_triggers;/spool off@drop_pk_u.sql@disable_trigger.sql3. 以ignore=y全库导入$ imp system/manager file=exp.dmp log=imp.log full=y ignore=y4. 通过toad或其他工具提取源数据库创建主键和索引的脚本,在目标数据库中创建主键和索引。