oracle_exp_imp_详解
EXP和IMP用法详解
/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)“增量型”增量导出导出上一次备份后改变的数据。
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用户模式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.dmplog=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.1使用,使用使用导出,使用垃无8无8 结论:oracle10->oracle8 导出使用8,导入使用8使用oracle8导出oracle10时,出现错误EXP-00003: 未找到段(10,585868) 的存储定义原因:不能用oracle8导出oracle10。
Oracle-11gR2-deferred-segment-creation-与-exp_imp-说明
--该特性不适用SYS 和 SYSTEM 用户
--手工分配segment。 这里方法很多,insert一条数据,或者使用alter 命令来操作。
--方法1 使用allocateextent,这里我们只对t2 操作
SQL> select 'alter table'||table_name||' allocate extent(size 64k);'
. . exporting table T1 35 rows exported
EXP-00011: ICD.T2 doesnot exist
EXP-00011: ICD.T3 doesnot exist
Export terminated successfully withwarnings.
--提示我们t2 和 t3表不存在
deferred_segment_creation boolean TRUE
SQL> create table t1 as select * fromdba_users;
Table created.
SQL> create table t2 as select * from dba_userswhere 1=2;
Table created.
SQL> create table t3 as select * fromdba_users where 1=2;
exp导出备份的属性详解
exp导出备份的属性详解在工作中经常需要对oracle数据库进行备份、异地恢复的情况。
Oracle的常规备份无非是exp/imp,expdp/impdp,rman三种方式。
1.exp/imp简单方便,适用于跨db版本、跨os平台、异地备份等情况,是大家最常用的一种备份方式。
2.expdp/impdp是10g以后推出的备份方式,其特点就是效率的大幅改善,据eygle报告,impdp相比与传统imp有20倍速度提升,其最大的缺点是不能跨数据库版本,连小版本号也不行(例如11.1到11.2)。
3.rman相比前两种备份方式,相对配置复杂,一般是DBA作为前两种方案的备份。
先看看exp/imp的用法:1.基本的exp写法1.exp userid/passwd@infodb81file=user_$DATE.dmp log=user_$DATE.loger: oracle用户名3.passwd:数据库用户密码db81:数据库的连接字符串5.file:备份后的文件名6.log:备份日志文件2.exp的参数参数一:buffer1.exp userid/passwd@infodb81 file=user_$DATE.dmp buffer=40960000002.注意:buffer的单位是bytes,例如设置1M,则是1024000,上面的例子设置的是400M。
3.根据我们测试的结果,加入buffer参数后,约有40%的性能提升。
4.5.经过反复验证:合理的buffer值是10240000-1024000之间,再大了反而效率更低。
6.环境:aix 6.1 16c 32G,sga信息如下7.SQL> show sga8.Total System Global Area 2.0043E+10 bytes9.Fixed Size 2153336 bytes10.Variable Size 1.3690E+10 bytes11.Database Buffers 6174015488 bytes12.Redo Buffers 176394240 bytes13.性能对比:14.加入buffer参数前(数据约9G,共31分钟)15.==========备份用户sinosybak 11-02-21 02:08:16 ====================16.==========备份用户shyang 11-02-21 02:35:49 ====================17.加入Buffer参数后(约18分钟)18.==========备份用户sinosybak 11-02-28 02:25:04 ====================19.==========备份用户shyang 11-02-28 02:43:52 ====================------------------------------------------------------------------------------------------------------------------------参数二:direct1.exp userid/passwd@infodb81file=user_$DATE.dmp direct=y recordlength=655362.direct :直接导出,数据从磁盘读入到高速缓存,直接写入到最终文件,所以没有数据行检查与匹配的过程。
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工具会读取源文件中的数据和对象,并将其恢复到目标数据库中。
oracle中exp与imp命令详解
exp/imp两个命令可以说是oracle中最常用的命令了.ORACLE数据库有两类备份方法。
第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。
数据库逻辑备份方法ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。
表模式备份某个用户模式下指定的对象(表)。
业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:exp icdmain/icd rows=y indexes=n compress=n buffer=65536feedback=100000 volsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.dealinfo若直接备份到磁带设备,使用如下命令:exp icdmain/icd rows=y indexes=n compress=n buffer=65536feedback=100000 volsize=0file=/dev/rmt0log=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.dealinfo注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。
出于速度方面的考虑,尽量不要直接备份到磁带设备。
用户模式备份某个用户模式下的所有对象。
业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0file=exp_icdmain_yyyymmdd.dmplog=exp_icdmain_yyyymmdd.log若直接备份到磁带设备,使用如下命令:exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0file=/dev/rmt0log=exp_icdmain_yyyymmdd.log注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。
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⼯具将⽂件中的对象和数据导⼊到⼀个或是多个⽅案中。
exp和imp详解
本文对Oracle数据的导入导出imp ,exp两个命令进行了介绍, 并对其相应的参数进行了说明,然后通过一些示例进行演练,加深理解.文章最后对运用这两个命令可能出现的问题(如权限不够,不同oracle版本)进行了探讨,并提出了相应的解决方案;本文部分内容摘录自网络,感谢网友的经验总结;一.说明oracle 的exp/imp命令用于实现对数据库的导出/导入操作;exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件;imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中。
二.语法可以通过在命令行输入imp help=y 获取imp的语法信息:================================================ =============================C:/Documents and Settings/auduser>imp help=yImport: Release 9.0.1.1.1 - Production on 星期二5月20 18:21:57 2008(c) Copyright 2001 Oracle Corporation. All rights reserved.可以通过输入IMP 命令和您的用户名/口令后接用户名/口令的命令:例程: IMP SCOTT/TIGER或者, 可以通过输入IMP 命令和各种参数来控制“导入”按照不同参数。
要指定参数,您可以使用关键字:格式: IMP KEYWORD=value 或KEYWORD=(value1,value2,...,vlaueN)例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N或TABLES=(T1: P1,T1: P2),如果T1 是分区表USERID 必须是命令行中的第一个参数。
关键字说明(默认)关键字说明(默认)--------------------------------------------------------------------------USERID 用户名/口令FULL 导入整个文件(N)BUFFER 数据缓冲区大小FROMUSER 所有人用户名列表FILE 输入文件(EXPDAT.DMP) TOUSER 用户名列表SHOW 只列出文件内容(N) TABLES 表名列表IGNORE 忽略创建错误(N) RECORDLENGTH IO 记录的长度GRANTS 导入权限(Y) INCTYPE 增量导入类型INDEXES 导入索引(Y) COMMIT 提交数组插入(N)ROWS 导入数据行(Y) PARFILE 参数文件名LOG 屏幕输出的日志文件CONSTRAINTS 导入限制(Y)DESTROY 覆盖表空间数据文件(N)INDEXFILE 将表/索引信息写入指定的文件SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护(N)FEEDBACK 每x 行显示进度(0)TOID_NOVALIDATE 跳过指定类型ID 的验证FILESIZE 每个转储文件的最大大小STATISTICS 始终导入预计算的统计信息RESUMABLE 遇到与空格有关的错误时挂起(N)RESUMABLE_NAME 用来标识可恢复语句的文本字符串RESUMABLE_TIMEOUT RESUMABLE 的等待时间COMPILE 编译过程, 程序包和函数(Y)下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导入可传输的表空间元数据(N)TABLESPACES 将要传输到数据库的表空间DATAFILES 将要传输到数据库的数据文件TTS_OWNERS 拥有可传输表空间集中数据的用户============================================== 同样可以通过输入exp help=y 获取exp的语法信息Microsoft Windows XP [版本5.1.2600](C) 版权所有1985-2001 Microsoft Corp.C:/Documents and Settings/auduser>exp help=yExport: Release 9.0.1.1.1 - Production on 星期二5月20 18:26:34 2008 (c) Copyright 2001 Oracle Corporation. All rights reserved.通过输入EXP 命令和用户名/口令,您可以后接用户名/口令的命令:例程: EXP SCOTT/TIGER或者,您也可以通过输入跟有各种参数的EXP 命令来控制“导出”按照不同参数。
imp和exp命令导入和导出.dmp文件
Oracle数据库文件中的导入\导出(imp/exp命令)Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
下面介绍的是导入导出的实例。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中exp system/manager@TEST file=d:daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)3 将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmptables=(inner_notify,notify_staff_relat)4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面加上compress=y 来实现。
数据的导入1 将D:daochu.dmp 中的数据导入TEST数据库中。
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用户的一些触发器之类的对象将会丢失,在导入后应该手工创建。
用imp_exp命令_导入导出Oracle数据
准备启用约束条件...
成功终止导入,但出现警告。
附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
2、commit
指定在每次数组插入完成后是否提交数据,默认为N
3、compile
指定在导入包,过程,函数时是否要进行编译,默认为Y
4、constraints
指定是否要导入表的约束,默认为Y
5、datafiles
指定要搬移到数据库的数据文件列表
6、destroy
指定是否要覆盖已存在的数据文件,默认为N。如果存在同名文件,则导入失败
8、object_consistent
指定是否要基于对象级设置只读事务导出,默认为N
9、owner
指定用户导出模式。exp system/manager owner=scott file=a.dmp log=a.log
10、query
指定where条件字句,导出表的部分数据,当使用直接导出方式不能指定该选项
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
13、rows
指定是否导出表行数据,默认值为Y。
exp scott/tiger tables=emp file=a.dmp rows=N
oracle的Export、Import详解
1、export/import的用处oracle export/import工具用于在数据库之间传递数据。
export从数据库中导出数据到dump文件中import从dump文件中到入数据导数据库中下面是一般使用他们的情况(1)两个数据库之间传送数据同一个版本的oracle server之间不同版本的oracle server之间同种os之间不同种os之间(2)用于数据库的备份和恢复(3)从一个schema传送到另一个schema(4)从一个tablespace传送到另一个tablespace2、dump文件export到出的是二进制格式的文件,不可以手工编辑,否则会损坏数据。
该文件在oracle支持的任何平台上都是一样的格式,可以在各平台上通用。
dump文件在import时采用向上兼容方式,就是说oralce7的dump文件可以导入到oracle8中,但是版本相差很大的版本之间可能有问题。
3、export/import过程export导出的dump文件包含两种基本类型的数据- ddl (data dictionary language)- datadump文件包含所有重新创建data dictionary的ddl语句,基本上是可以读的格式。
但是应该注意的是,千万不要用文本编辑器编辑之,oracle说不支持这样做的。
下面列出的是dump文件中包括的oracle对象,分为table/user/full方式,有些对象只是在full方式下才有(比如public synonyms, users, roles, rollback segments等)table mode user mode full database mode---------------------- ---------------------- -------------------------table definitions table definitions table definitionstable data table data table dataowner's table grants owner's grants grantsowner's table indexes owner's indexes indexestable constraints table constraints table constraintstable triggers table triggers all triggersclusters clustersdatabase links database linksjob queues job queuesrefresh groups refresh groupssequences sequencessnapshots snapshotssnapshot logs snapshot logsstored procedures stored proceduresprivate synonyms all synonymsviews viewsprofilesreplication catalogresource costrolesrollback segmentssystem audit optionssystem privilegestablespace definitionstablespace quotasuser definitions4、import时的对象倒入顺序在倒入数据时,oracle有一个特定的顺序,可能随数据库版本不同而有所变化,但是现在是这样的。
imp、exp命令详解
根据情况我们可以用
$ imp username/password@connect_string
说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.
(5) imp和exp使用的字符集不同
如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.
导入完成后再改回来.
(6) imp和exp版本不能往上兼容
它有三种模式:
a. 用户模式: 导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入
注:Oralce数据库导入导出时要确保Oralce服务启动
以下参考自:/thread.shtml?forumId=36&topicId=23332
一. 导出工具 exp
1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
然后按回车键
说明: c2j/c2j@c2j 分别表示用户名,密码和服务名
file:要导入的文件的全路迳
fromuser:指明来源用户方
ignore:是否忽略对象创建错误
commit:上载数据缓冲区中的记录,上载后是否执行提交
出现 正常终了表示导入成功
打开数据库,看是否导入成功
oracle备份之expdpimpdp和expimp命令
oracle备份之expdpimpdp和expimp命令EXP/IMPexp/imp 介绍常⽤实例门诊统筹exp/impexp mztc/YinhaiTY2019 compress=n buffer=4096000 feedback=100000 owner=mztc file=mztc1.dmp log=mztc1.logimp mztc/YinhaiTY2019@ybpdb fromuser=mztc touser=mztc ignore=y buffer=4096000 feedback=100000 file=mztc.dmp log=mztc.loghis数据库impdp/expdpexpdp system/123456@ybzjk schemas=oracle directory=BAK_DIR dumpfile=yhhis-20211201.dmp.dmp logfile=yhhis-20211201.dmp.logimpdp system/123456@ybzjk schemas=oracle directory=BAK_DIR dumpfile=yhhis-20211201.dmp.dmp logfile=yhhis-20211201.dmp.logexpdp yhhis/xhlhis@111.111.111.153/pdbhisdb schemas=yhhis directory=dmp compression=ALL dumpfile=yhhis-20211201.dmp logfile=yhhis-20211201-expdp.dmp impdp yhhis/yhhis@ylpdb remap_schema=yhhis_a:yhhis directory=BAK_DIR dumpfile=yhhis-20211201.dmp logfile=yhhis-20211201-imp.log基本语法和实例:1、 EXP有三种主要的⽅式(完全、⽤户、表)1.1 完全EXP SYSTEM/PASSWORD BUFFER=1024000 FILE=C:\FULL.DMP FULL=Y如果要执⾏完全导出,必须具有特殊的权限1.2 ⽤户模式EXP SONIC/SONIC BUFFER=1024000 FILE=C:\SONIC.DMP OWNER=SONIC这样⽤户SONIC的所有对象被输出到⽂件中。
数据泵expdp impdp 和exp imp工具命令参数中文说明
一、数据泵EXPDP命令参数中文说明#通过在命令行输入expdp help=y 获取imp的语法信息Export: Release 11.2.0.1.0 - Production on 星期五10月10 12:25:21 2019Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.数据泵导出实用程序提供了一种用于在Oracle 数据库之间传输数据对象的机制。
该实用程序可以使用以下命令进行调用:示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导出的运行方式。
具体方法是: 在'expdp' 命令后输入各种参数。
要指定各参数, 请使用关键字:格式: expdp KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott 或TABLES=(T1:P1,T1:P2), 如果T1 是分区表USERID 必须是命令行中的第一个参数。
------------------------------------------------------------------------------以下是可用关键字和它们的说明。
方括号中列出的是默认值。
ATTACH连接到现有作业。
例如, ATTACH=job_name。
COMPRESSION减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和NONE。
CONTENT指定要卸载的数据。
有效的关键字值为: [ALL], DATA_ONLY 和METADATA_ONLY。
exp imp 常见问题解决
当表中有long或者lob类型的字段时候,imp的时候对这个表单独imp,要加commit=n,导完一张表提交一次,这样会比加commit=y快。
对含有long或者lob类型字段的表imp时候,加了commit=y,由于long字段很大,数据缓冲很快就会满,每插入一行就会commit一次。导致很频繁的提交,imp会等待log file sync,导致导入很慢。
在export/import过程中,定时查询dba_resumable视图,可以看到设置了resumable的作业信息。
如果作业没有挂起,ERROR_NUMBER 列为0,ERROR_MSG列为空。
当出现错误的时候,ERROR_NUMBER为相应的错误代码,ERROR_MSG为具体的错误信息。
将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
(当索引与数据rows要分两次导入时候,导入索引时候要指定ignore=y,否则索引导不进去。
当数据库中已经有要导入的表,并且表中已经存在一些数据时候,如果不覆盖这些数据,append导入数据到这个表,直接指定ignore=y即可)
ORA-06512: at line 1
IMP-00017: following statement failed with ORACLE error 942:
"BEGIN SYS.DBMS_SNAPSHOT_UTL.SYNC_UP_LOG('OWNER','TABLE NAME'); END;"
编译失效公共同义词:
select 'alter public '||OBJECT_TYPE||' '||OBJECT_NAME||' compile;' from dba_objects where status='INVALID' and
exp、imp注意事项
为了使测试与生产数据保持一致,只需要导出数据的时候,可以将测试库的表truncate,保留其它如索引,trigger,constraints,grants等不用再重新导。
exp时候rows=y,其它全部选n,imp时候rows=y ,其它nignore是否忽略创建错误。
Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。
若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。
若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
(当索引与数据rows要分两次导入时候,导入索引时候要指定ignore=y,否则索引导不进去。
当数据库中已经有要导入的表,并且表中已经存在一些数据时候,如果不覆盖这些数据,append导入数据到这个表,直接指定ignore=y即可)当表中有long或者lob类型的字段时候,imp的时候对这个表单独imp,要加commit=n,导完一张表提交一次,这样会比加commit=y快。
对含有long或者lob类型字段的表imp时候,加了commit=y,由于long字段很大,数据缓冲很快就会满,每插入一行就会commit一次。
导致很频繁的提交,imp会等待log file sync,导致导入很慢。
show parameter filesystemio_options --应该为setall~~~~~~~~~~~~~~~~导入导出BLOB数据~~~~~~~~~~~~~~~~可以用IMP/EXP条件:1.导入时要确保有该BLOB字段的列的表还未建起来2.在EXP/IMP中参数中指定BUFFER到一定的值,内存必须足够容纳一次预取一行的数据量,有写LOB 列可能达到2G加快exp速度:direct=y (常规路径导出使用sql select语句从表中取出数据,直接路径导出则将数据直接从硬盘读到pga 然后写入导出文件)recordlength=65535 (定义了export i/o缓冲的大小,类似于常规路径导出的buffer参数)直接路径导出的限制:8i以及以下的版本不支持导出客户端和数据库的字符集转换,因此导出前要保证NLS_LANG参数设置正确;815以及以下版本不支持导出含LOBs对象的表;不能使用query参数)加快imp速度:加大temp表空间。
Oracle11gR2 实现数据库备份与恢复(exp、imp)
Oracle11gR2 实现数据库备份与恢复
一、导出数据库(数据库备份)
1.Cmd exp
2.输入用户名scott及密码:Tiger
3.enter (默认)
4.输入要备份的文件名称如mydata.dmp
5.选择导出的内容U –>用户T->代表的是表
6.导入权限、导出表数据、及数据压缩选项
这样就完成数据备份了,,备份数据所在位置为默认目录
二、导入数据(imp)恢复备份数据
1.cmd ->imp(导入数据命令)
2.输入用户名:scott和密码:Tiger
3.对仅导入数据、选项进行选择
4.导入文件填写
5.对冲去进行默认操作、对只导入文件内容、等进行莫荣选择
6.对导入权限、导入表数据、导入整个导出文件选项进行选择
7.数据备份就完成了,,在pl/sqL工具中查询下删除掉的数据是否恢复就知道了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oracle exp/imp 详解导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳。
当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。
对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具。
下面说明一下EXP/IMP的使用。
如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,如果set nls_lang=American_america.字符集,那么帮助就是英文的了EXP的所有参数(括号中为参数的默认值):USERID 用户名/口令如:USERID=duanl/duanlFULL 导出整个数据库(N)BUFFER 数据缓冲区的大小OWNER 所有者用户名列表,你希望导出哪个用户的对象,就用owner=username FILE 输出文件(EXPDAT.DMP)TABLES 表名列表,指定导出的table名称,如:TABLES=table1,table2 COMPRESS 导入一个extent (Y)RECORDLENGTH IO 记录的长度GRANTS 导出权限(Y)INCTYPE 增量导出类型INDEXES 导出索引(Y)RECORD 跟踪增量导出(Y)ROWS 导出数据行(Y)PARFILE 参数文件名,如果你exp的参数很多,可以存成参数文件. CONSTRAINTS 导出约束(Y)CONSISTENT 交叉表一致性LOG 屏幕输出的日志文件STATISTICS 分析对象(ESTIMATE)DIRECT 直接路径(N)TRIGGERS 导出触发器(Y)FEEDBACK 显示每x 行(0) 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N)TABLESPACES 将传输的表空间列表程序代码IMP的所有参数(括号中为参数的默认值):USERID 用户名/口令FULL 导入整个文件(N)BUFFER 数据缓冲区大小FROMUSER 所有人用户名列表FILE 输入文件(EXPDAT.DMP)TOUSER 用户名列表SHOW 只列出文件内容(N)TABLES 表名列表IGNORE 忽略创建错误(N)RECORDLENGTH IO 记录的长度GRANTS 导入权限(Y)INCTYPE 增量导入类型INDEXES 导入索引(Y)COMMIT 提交数组插入(N)ROWS 导入数据行(Y)PARFILE 参数文件名LOG 屏幕输出的日志文件CONSTRAINTS 导入限制(Y)DESTROY 覆盖表空间数据文件(N)INDEXFILE 将表/索引信息写入指定的文件SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护(N)ANALYZE 执行转储文件中的ANALYZE 语句(Y)FEEDBACK 显示每x 行(0) 的进度TOID_NOVALIDATE 跳过指定类型id 的校验FILESIZE 各转储文件的最大尺寸RECALCULATE_STATISTICS 重新计算统计值(N)下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导入可传输的表空间元数据(N)TABLESPACES 将要传输到数据库的表空间DATAFILES 将要传输到数据库的数据文件TTS_OWNERS 拥有可传输表空间集中数据的用户关于增量参数的说明:exp/imp的增量并不是真正意义上的增量,所以最好不要使用。
使用方法:Exp parameter_name=value or Exp parameter_name=(value1,value2……)只要输入参数help=y就可以看到所有帮助.EXP常用选项1.FULL,这个用于导出整个数据库,在ROWS=N一起使用时,可以导出整个数据库的结构。
例如:exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y2. OWNER和TABLE,这两个选项用于定义EXP的对象。
OWNER定义导出指定用户的对象;TABLE指定EXP的table名称,例如:exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanlexp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap3.BUFFER和FEEDBACK,在导出比较多的数据时,我会考虑设置这两个参数。
例如:exp userid=test/test file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000buffer=100000000 tables=WO4,OK_YT4.FILE和LOG,这两个参数分别指定备份的DMP名称和LOG名称,包括文件名和目录,例子见上面。
PRESS参数不压缩导出数据的内容。
用来控制导出对象的storage语句如何产生。
默认值为Y,使用默认值,对象的存储语句的init extent等于当前导出对象的extent的总和。
推荐使用COMPRESS=N。
6. FILESIZE该选项在8i中可用。
如果导出的dmp文件过大时,最好使用FILESIZE参数,限制文件大小不要超过2G。
如:exp userid=duanl/duanl file=f1,f2,f3,f4,f5 filesize=2G owner=scott这样将创建f1.dmp, f2.dmp等一系列文件,每个大小都为2G,如果导出的总量小于10G EXP不必创建f5.bmp.IMP常用选项DBA1、FROMUSER和TOUSER,使用它们实现将数据从一个SCHEMA中导入到另外一个SCHEMA中。
例如:假设我们做exp时导出的为test的对象,现在我们想把对象导入用户:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test12、IGNORE、GRANTS和INDEXES,其中IGNORE参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。
而GRANTS和INDEXES则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将INDEXES设为N,而GRANTS一般都是Y。
例如:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=N表空间传输表空间传输是8i新增加的一种快速在数据库间移动数据的一种办法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件,这在有些时候是非常管用的,因为传输表空间移动数据就象复制文件一样快。
关于传输表空间有一些规则,即:•源数据库和目标数据库必须运行在相同的硬件平台上。
•源数据库与目标数据库必须使用相同的字符集。
•源数据库与目标数据库一定要有相同大小的数据块•目标数据库不能有与迁移表空间同名的表空间•SYS的对象不能迁移•必须传输自包含的对象集•有一些对象,如物化视图,基于函数的索引等不能被传输可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准:exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);select * from sys.transport_set_violation;如果没有行选择,表示该表空间只包含表数据,并且是自包含的。
对于有些非自包含的表空间,如数据表空间和索引表空间,可以一起传输。
以下为简要使用步骤,如果想参考详细使用方法,也可以参考ORACLE联机帮助。
1.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index)alter tablespace app_data read only;alter tablespace app_index read only;2.发出EXP命令SQL>host exp userid=”””sys/password as sysdba”””transport_tablespace=y tablespace=(app_data, app_index)以上需要注意的是•为了在SQL中执行EXP,USERID必须用三个引号,在UNIX中也必须注意避免“/”的使用•在816和以后,必须使用sysdba才能操作•这个命令在SQL中必须放置在一行(这里是因为显示问题放在了两行)3.拷贝数据文件到另一个地点,即目标数据库可以是cp(unix)或copy(windows)或通过ftp传输文件(一定要在bin方式)4.把本地的表空间设置为读写5.在目标数据库附加该数据文件imp file=expdat.dmp userid=”””sys/password as sysdba””” transport_tablespace=y “datafile=(c:\temp\app_data,c:\temp\app_index)”6.设置目标数据库表空间为读写alter tablespace app_data read write;alter tablespace app_index read write;优化EXP/IMP的方法:当需要exp/imp的数据量比较大时,这个过程需要的时间是比较长的,我们可以用一些方法来优化exp/imp的操作。
exp:使用直接路径direct=yoracle会避开sql语句处理引擎,直接从数据库文件中读取数据,然后写入导出文件.可以在导出日志中观察到: exp-00067: table xxx will be exported in conventional path 如果没有使用直接路径,必须保证buffer参数的值足够大.有一些参数于direct=y不兼容,无法用直接路径导出可移动的tablespace,或者用query 参数导出数据库子集.当导入导出的数据库运行在不同的os下时,必须保证recordlength参数的值一致. imp:通过以下几个途径优化1.避免磁盘排序将sort_area_size设置为一个较大的值,比如100M2.避免日志切换等待增加重做日志组的数量,增大日志文件大小.3.优化日志缓冲区比如将log_buffer容量扩大10倍(最大不要超过5M)4.使用阵列插入与提交commit = y注意:阵列方式不能处理包含LOB和LONG类型的表,对于这样的table,如果使用commit = y,每插入一行,就会执行一次提交.5.使用NOLOGGING方式减小重做日志大小在导入时指定参数indexes=n,只导入数据而忽略index,在导完数据后在通过脚本创建index,指定NOLOGGING选项导出/导入与字符集进行数据的导入导出时,我们要注意关于字符集的问题。