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用户的一些触发器之类的对象将会丢失,在导入后应该手工创建。
expdp、impdp用法详解
expdp、impdp⽤法详解Oracle数据泵⼀、数据泵的作⽤:1.实现逻辑备份和逻辑恢复2.在数据库⽤户之间移动对象3.在数据库之间移动对象4.实现表空间转移⼆、数据泵的特点与传统导出导⼊的区别1.EXP和IMP是客户段⼯具程序, EXPDP和IMPDP是服务端的⼯具程序2.EXP和IMP效率⽐较低. EXPDP和IMPDP效率⾼3.数据泵功能强⼤并⾏、过滤、转换、压缩、加密、交互等等4.数据泵不⽀持9i以前版本, EXP/IMP短期内还是⽐较适⽤5.同exp/imp数据泵导出包括导出表,导出⽅案,导出表空间,导出数据库4种⽅式.三、DATA PUMP的体系结构:四、EXPDP语法介绍:数据泵导出实⽤程序提供了⼀种⽤于在 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 [=作业名]。
COMPRESSION 减⼩有效的转储⽂件内容的⼤⼩ 关键字值为: (METADATA_ONLY) 和 NONE。
用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
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的使用方法
说明:
1) 由于Export每次读取一个表,每个表在不同的时刻读取,因此可能会出现数据不一致,此时可以使用CONSISTENT参数来保证数据的一致性。
2) 按表空间导出为Oracle9i新增,他将导出包含在指定表空间中的所有对象,及对象上的索引定义,即使他们在另一个表空间中。
[CONSTRAINTS = <Y|n>] --是否>] --是否导出触发器
[GRANTS = <Y|n>] --是否导出授权
[ROWS = <Y|n>] --是否导出数据行
2:导入方式恢复数据库,默认输入文件为 EXPDAT.DMP
imp <userid>/<password>@<db_name> {clause} [FILE = <file_path>] [Log = <file_path>]
[IGNORE = <N|y>] --是否忽略创建对象错误
按表名导入: [fromuser = (schema01, schema02,...)] [touser = (schema01, schema02,...)] tables = (tables01, tables02, ...)
按表空间导入: tablespaces = (tablespace01, tablespace02, ...)
[DESTROY = <N|y>] --是否覆盖表空间数据文件
[COMMIT = <N|y>] --是否启用提交数组插入
Oracle数据库ExpImp工具性能调优
Oracle数据库ExpImp工具性能调优内容摘要:Oracle Exp/Imp工具是一个操作简单、方便灵活的备份恢复和数据迁移工具,它可以实施全库级、用户级、表级的数据备份和恢复。
对于数据量在G级或G级以内,强调高可用性,可以容忍少量数据丢失的数据库系统,Exp/Imp是普遍使用的逻辑备份方式。
目前现网很多生产系统均使用Exp/Imp进行备份恢复。
数据量达到G 级以后,备份恢复的时间明显拉长了,有没有方法能够有效提高Exp/Imp的速度呢?答案是肯定的,某些方法还可以成倍的提高速度,本文就从Exp、Imp两个工具分别探讨优化备份恢复性能的方法。
一、Exp调优1.使用DIRECT和RECORDLENGTH选项DIRECT参数定义了导出是使用直接路径方式(DIRECT=Y),还是常规路径方式(DIRECT=N)。
常规路径导出使用SQL SELECT语句从表中抽取数据,直接路径导出则是将数据直接从磁盘读到PGA再原样写入导出文件,从而避免了SQL命令处理层的数据转换过程,大大提高了导出效率。
在数据量大的情况下,直接路径导出的效率优势更为明显,可比常规方法速度提高三倍之多。
和DIRECT=Y配合使用的是RECORDLENGTH参数,它定义了Export I/O缓冲的大小,作用类似于常规路径导出使用的BUFFER参数。
建议设置RECORDLENGTH参数为最大I/O缓冲,即65535(64kb)。
其用法如下:exp userid=system/manager full=y direct=y recordlength=65535 file=exp_full.dmp log=exp_full.log直接路径导出根据Oracle版本不同,有一些使用限制。
比较重要的限制有,8i及以下版本不支持导出客户端和数据库的字符集转换,因此导出前必须保证NLS_LANG设置正确;8.1.5及以下版本不支持导出含LOBs对象的表;不能使用QUERY参数等。
数据库迁移的几种常用方式及优缺点比较
数据库迁移的几种方式:一、exp/imp:这也算是最常用最简单的方法了,一般是基于应用的owner级做导出导入。
操作方法为:在新库建立好owner和表空间,停老库的应用,在老库做exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,传dmp文件到新库,在新库做imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间。
二、存储迁移:这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。
操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置。
将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库。
优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为当库、切存储、起库的时间。
缺点是要求新老库都是同一平台,是相同的数据库版本。
三、利用data guard迁移:用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式。
操作方法:略。
注意switch over之后,可以将dg拆掉,去掉log_archive_dest_2、FAL_SERVER、FAL_CLIENT、standby_file_management参数。
另外还要注意如果用rman做dg,注意手工添加tempfile。
优缺点:优点是停机时间短,停机时间为switch over的时间。
缺点:主机必须双份、存储必须双份。
exp和imp常用_
例如:将192.168.82.129的orcl库中的local_sp用户的所有对象都导入到192.168.82.130数据库中。
前提:130的orcl库中必须有local_sp这个用户A.在129上su – oracleB.然后再命令行执行exp local_sp/local_sp@orcl owner=local_sp file=local_sp.dmp log=local_sp.log 解析:这是exp导出命令,然后在当前目录下会看到local_sp.dmp这个文件。
C.然后将local_sp.dmp传到130上。
命令为:scp local_sp.dmp 192.168.82.130:/home/oracle/D.登陆到130上,su – oracle用户,然后再命令行执行imp local_sp/local_sp@orcl fromuser= local_sp touser= local_sp file=local_sp.dmpE.即可2.按照表级别exp和imp操作步骤和上面的很像,唯一不同的是exp和imp命令上的差异exp的命令为:exp local_sp/local_sp@orcl tables=(table_name1,table_name2 ……)file=local_sp.dmp log=local_sp.logimp命令为:imp local_sp/local_sp@orcl ignore=y file=local_sp.dmp解析:imp的命令中是将dmp的文件全部导入库中,如果exp导出的是多个表,但是这里imp导入时只想导入1张表,那就可以将tables=(table_name)加入到imp命令中即可。
一般情况下,按照全库级别的导出和导入情况比较少,当然在数据库迁移的情况下比较实用。
这里全库的exp和imp一般都是以sys来做。
具体exp和imp的命令为:exp \'sys/passwd@orcl as sysdba\' full=y file=full.dmp log=full.logimp \'sys/passwd@orcl as sysdba\' full=y file=full.dmp备注:imp和exp要注意数据库的版本和字符集,如果版本不一致可能imp时不能成功,如果字符集不一致在imp成功以后的数据可能是乱码!如果需要更改字符集的话,需要关闭数据库后,将数据库打开到限制模式下,才可以修改!暂时就先写这3种情况,详细步骤请看exp_资料和 imp_资料。
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表空间。
- 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或其他工具提取源数据库创建主键和索引的脚本,在目标数据库中创建主键和索引。