imp和exp命令导入和导出.dmp文件

合集下载

在plsql中使用exp imp工具实现oracle数据导出导入

在plsql中使用exp imp工具实现oracle数据导出导入

在plsql中使用exp imp工具实现oracle数据导出导入Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS (命令行)中执行, DOS中可以执行时由于在oracle 8i 中安装目录\\ora81\\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。

SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。

数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\\daochu.dmp中exp system/manager@TEST file=d:\\daochu.dmp full=y 2 将数据库中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:\\data\\newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以\"00\"打头的数据导出 exp system/manager@TESTfile=d:\\daochu.dmp tables=(table1) query=\\\" where filed1 like'00%'\\\" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

exp&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导入导出指定表

使用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 错误的应对之道,参考⽂章:。

[知识]imp和exp命令导入和导出.dmp文件

[知识]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文件可以很好的压缩。

也可以在上面命令后面加上com press=y 来实现。

数据的导入1 将D:daochu.dmp 中的数据导入TEST数据库中。

ORACLE导出导入(exp和imp)总结

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数据泵进行导出导入的方法

【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. //这个就是错误的信息。

在plsql中使用expimp工具实现oracle数据导出导入

在plsql中使用expimp工具实现oracle数据导出导入

在plsq‎l中使用e‎x p imp工具‎实现ora‎c le数据‎导出导入Oracl‎e数据导入‎导出imp‎/exp就相‎当于ora‎c le数据‎还原与备份‎。

exp命令‎可以把数据‎从远程数据‎库服务器导‎出到本地的‎d mp文件‎,imp命令‎可以把dm‎p文件从本‎地导入到远‎处的数据库‎服务器中。

利用这个功‎能可以构建‎两个相同的‎数据库,一个用来测‎试,一个用来正‎式使用。

执行环境:可以在SQ‎L PLUS‎.EXE或者‎D OS (命令行)中执行, DOS中可‎以执行时由‎于在orac‎l e 8i 中安装目录\\ora81‎\\BIN被设‎置为全局路‎径,该目录下有‎E XP.EXE与I‎M P.EXE文件‎被用来执行‎导入导出。

oracl‎e用jav‎a编写,SQLPL‎U S.EXE、EXP.EXE、IMP.EXE这两‎个文件有可‎能是被包装‎后的类文件‎。

SQLPL‎U S.EXE调用‎E XP.EXE、IMP.EXE所包‎裹的类,完成导入导‎出功能。

下面介绍的‎是导入导出‎的实例。

数据导出: 1 将数据库T‎E ST完全‎导出,用户名sy‎s tem 密码man‎a ger 导出到D:\\daoch‎u.dmp中exp syste‎m/manag‎e r@TEST file=d:\\daoch‎u.dmp full=y 2 将数据库中‎s yste‎m 用户与s‎y s用户的‎表导出 exp syste‎m/manag‎e r@TEST file=d:\\daoch‎u.dmp owner‎=(syste‎m,sys) 3 将数据库中‎的表inn‎e r_no‎t ify、notif‎y_sta‎f f_re‎l at导出‎exp aicha‎n nel/aicha‎n nel@TESTD‎B2 file= d:\\data\\newsm‎g nt.dmp table‎s=(inner‎_noti‎f y,notif‎y_sta‎f f_re‎l at) 4 将数据库中‎的表tab‎l e1中的‎字段fil‎e d1以\"00\"打头的数据‎导出 exp syste‎m/manag‎e r@TESTfile=d:\\daoch‎u.dmp table‎s=(table‎1) query‎=\\\" where‎filed‎1 like'00%'\\\" 上面是常用‎的导出,对于压缩,既用win‎z ip把d‎m p文件可‎以很好的压‎缩。

oracle中exp,imp(导入,导出)的使用详解

oracle中exp,imp(导入,导出)的使用详解

oracle中exp,imp(导⼊,导出)的使⽤详解今天说说Oracle数据库的导⼊(imp.exe)和导出(exp.exe)命令的使⽤,我们的电脑⾥⾯安装完Oracle或OracleClient的时候,在我们的安装⽬录⾥⾯就有这两个命令了,⼀般是在你的Oracle安装⽬录下⾯的bin⽂件夹下⾯会有exp.exe和imp.exe这两个⽂件,它们都是在命令⾏下运⾏,⾸先打开你的CMD程序,然后切换到Oracle的bin⽬录下⾯。

下⾯就看看这两个命令的具体⽤法:基本语法和实例: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 expimp导出导入工具的使用

Oracle expimp导出导入工具的使用

Oracle exp/imp导出导入工具的使用一. 导出工具 exp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binexp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。

2. 导出工具exp交互式命令行方式的使用的例子$exp test/test123@appdbEnter array fetch buffer size: 4096 > 回车Export file: expdat.dmp > m.dmp 生成导出的文件名(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3Export table data (yes/no): yes > 回车Compress extents (yes/no): yes > 回车Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set About to export specified tables via Conventional Path ...Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名. . exporting table CMAMENU 4336 rows exportedTable(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名nTable(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车Export terminated successfully without warnings.3. 导出工具exp非交互式命令行方式的例子$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\"file=/directory/scott2.dmp说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)$exp parfile=username.parfile=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000Mlog=/directory2/username_exp.log参数文件username.par内容userid=username/userpasswordbuffer=8192000compress=ngrants=y说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改filesize指定生成的二进制备份文件的最大字节数(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)二.导入工具 imp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binimp导入工具将EXP形成的二进制系统文件导入到数据库中.它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。

用imp_exp命令_导入导出Oracle数据

用imp_exp命令_导入导出Oracle数据
. . 正在导入表 "INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。
附录二:
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

expdpimpdp数据库导入导出命令详解

expdpimpdp数据库导入导出命令详解

expdpimpdp数据库导⼊导出命令详解⼀、创建逻辑⽬录,该命令不会在操作系统创建真正的⽬录,最好以system等管理员创建。

create directory dpdata1 as 'd:\test\dump';⼆、查看管理理员⽬录(同时查看操作系统是否存在,因为Oracle并不关⼼该⽬录是否存在,如果不存在,则出错)select * from dba_directories;三、给scott⽤户赋予在指定⽬录的操作权限,最好以system等管理员赋予。

grant read,write on directory dpdata1 to scott;四、导出数据1)按⽤户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;2)并⾏进程parallelexpdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;4)按查询条件导expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;五、还原数据1)导到指定⽤户下impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;2)改变表的ownerimpdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;3)导⼊表空间impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;4)导⼊数据库impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;----------------------------Expdp/Impdp的相关参数----------------------------EXPDP命令⾏选项1. ATTACH该选项⽤于在客户会话与已存在导出作⽤之间建⽴关联.语法如下ATTACH=[schema_name.]job_nameSchema_name⽤于指定⽅案名,job_name⽤于指定导出作业名.注意,如果使⽤ATTACH选项,在命令⾏除了连接字符串和ATTACH选项外,不能指定任何其他选项,⽰例如下:Expdp scott/tiger ATTACH=scott.export_job2. CONTENT该选项⽤于指定要导出的内容.默认值为ALLCONTENT={ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dumpCONTENT=METADATA_ONLY3. DIRECTORY指定转储⽂件和⽇志⽂件所在的⽬录DIRECTORY=directory_objectDirectory_object⽤于指定⽬录对象名称.需要注意,⽬录对象是使⽤CREATE DIRECTORY语句建⽴的对象,⽽不是OS ⽬录Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump建⽴⽬录:CREATE DIRECTORY dump as ‘d:dump’;查询创建了那些⼦⽬录:SELECT * FROM dba_directories;4. DUMPFILE⽤于指定转储⽂件的名称,默认名称为expdat.dmpDUMPFILE=[directory_object:]file_name [,….]Directory_object⽤于指定⽬录对象名,file_name⽤于指定转储⽂件名.需要注意,如果不指定directory_object,导出⼯具会⾃动使⽤DIRECTORY选项指定的⽬录对象Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占⽤磁盘空间分⽅法.默认值是BLOCKSEXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时,oracle会按照⽬标对象所占⽤的数据块个数乘以数据块尺⼨估算对象占⽤的空间,设置为STATISTICS时,根据最近统计值估算对象占⽤空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=a.dump6. EXTIMATE_ONLY指定是否只估算导出作业所占⽤的磁盘空间,默认值为NEXTIMATE_ONLY={Y | N}设置为Y时,导出作⽤只估算对象所占⽤的磁盘空间,⽽不会执⾏导出作业,为N时,不仅估算对象所占⽤的磁盘空间,还会执⾏导出操作. Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE该选项⽤于指定执⾏操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [,….]Object_type⽤于指定要排除的对象类型,name_clause⽤于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使⽤Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW8. FILESIZE指定导出⽂件的最⼤尺⼨,默认为0,(表⽰⽂件尺⼨没有限制)9. FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value⽤于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使⽤Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”11. FULL指定数据库模式导出,默认为NFULL={Y | N}为Y时,标识执⾏数据库导出.12. HELP指定是否显⽰EXPDP命令⾏选项的帮助信息,默认为N当设置为Y时,会显⽰导出选项的帮助信息.Expdp help=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 的相应选项值.Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=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_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使⽤.Expdp scott/tiger directory=dump dumpfiel=a.dmpTables=emp query=’WHERE deptno=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对象权限.-------------------------------------应⽤-------------------------------------Data Pump 反映了整个导出/导⼊过程的完全⾰新。

数据泵expdp impdp 和exp imp工具命令参数中文说明

数据泵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。

pl sql中用exp imp 实现数据的导出和导入

pl sql中用exp imp 实现数据的导出和导入

2009-11-05 18:27在pl/sql中使用exp/imp命令实现oracle数据导出/导入经过使用后发现,在pl/sql中,在命令前加上host ,可以使用,不加host,好像不能使用,原因不知。

如:host exp system/manager@TEST file=d:\daochu.dmp full=yOracle数据导入导出imp/exp就相当于oracle数据还原与备份。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录\ora81\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。

SQLPLUS.EXE调用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:\data\newsmgnt.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文件可以很好的压缩。

Oracle数据库impexp导入导出命令(备份与恢复)

Oracle数据库impexp导入导出命令(备份与恢复)

Oracle数据库imp/exp导入导出命令(备份与恢复)Toad 一个很好的oralce数据库操作与管理工具,使用它可以很方便地导入导出数据表,用户以及整个数据库。

今天在这里主要讲一下用命令行来操作oracle数据导入和导出:备份数据1、获取帮助:exp help=y2. 导出一个完整数据库exp user/pwd@instance file=path full=y示例:exp system/system@xc file = c:/hehe full =yimp tax/test@tax file=d:/dbbak.dmp full=y3 、导出一个或一组指定用户所属的全部表、索引和其他对象exp system/manager file=seapark log=seapark owner=seaparkexp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)示例:exp system/system@xc file=c:/hehe owner=uep4、导出一个或多个指定表exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)示例:exp system/system@xc file=c:/heh tables=(ueppm.ne_table)恢复数据1. 获取帮助imp help=y2. 导入一个完整数据库imp system/manager file=bible_db log=dible_db full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seaparkimp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)4. 将一个用户所属的数据导入另一个用户imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copyimp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)5. 导入一个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)****************************************************利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle 数据库中去。

exp及imp的使用方法

exp及imp的使用方法
按表空间导出: tablespaces = (tablespace01, tablespace02, ...)
说明:
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>] --是否启用提交数组插入

Oracledmp文件exp导出,imp导入

Oracledmp文件exp导出,imp导入

Oracledmp⽂件exp导出,imp导⼊ 公司有⼀台需要更换的Oralce服务器,需要把⾥⾯的数据导出,但是因为是内⽹所以没法⽤pl/sql连接,所以就尝试⽤Oracle⾃带的exp在服务器端导出dmp⽂件,然后在外⽹使⽤Docker 拉取Oracle镜像,⽤imp命令导⼊。

准备⼯作: 1、在内⽹将使⽤exp导出的dmp⽂件复制到外⽹机器Docker启动的Oracle容器内 这⾥需要⽤到的命令就是宿主⽂件复制到容器内#查询Oracle容器名称[root@liwei ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES9c0373c27212 /helowin/oracle_11g "/bin/sh -c '/home/o…" About an hour ago Up About an hour 0.0.0.0:1521->1521/tcp oracle11g #将宿主⽂件复制到容器内[root@liwei ~]# docker cp /home/platform.dmp oracle11g:/home/ 2、准备⼀台外⽹机器,并安装Docker 3、使⽤doker拉取Oracle镜像() 步骤: 1、将dmp⽂件使⽤SecureFX⼯具上传⾄外⽹机器 2、在外⽹机器进⼊Docker 按照上⾯的播客创建的oracle容器,输⼊下⾯的命令;--使⽤imp命令导⼊dmp⽂件imp USERID=/⽤户名/密码 FILE=dmp⽂件位置imp USERID=test/test FILE=/home/platform.dmp IGNORE=Y FULL=Y;--这个时候提⽰import done in US7ASCII character set and AL16UTF16 NCHAR character setimport server uses AL32UTF8 character set (possible charset conversion)export client uses ZHS16GBK character set (possible charset conversion)IMP-00031: Must specify FULL=Y or provide FROMUSER/TOUSER or TABLES argumentsIMP-00000: Import terminated unsuccessfully上⾯错误是因为客户端和服务器端的Oracle字符集不⼀样,这个时候就要将客户端的字符集改成与服务器⼀致,下⾯是修改Oracle字符集的步骤,按照下⾯的步骤即可设置成功(不要在线上Oracle执⾏这些命令,他会关闭数据库再重启)sqlplus /nologSQL> conn /as sysdba;SQL>select userenv('language') from dual;SQL>SHUTDOWN IMMEDIATESQL>STARTUP MOUNTSQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;SQL>ALTER DATABASE OPEN;SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;SQL>SHUTDOWN IMMEDIATE;SQL>STARTUP;SQL>select userenv('language') from dual;--然后再执⾏上⾯的导⼊命令. . importing table "T_USER_GROUP" 2 rows imported. . importing table "T_USER_PRVG" 455 rows importedAbout to enable constraints...Import terminated successfully with warnings.到这个时候就导⼊成功了。

expexpdp与impimpdp命令导入导出数据库详解-1

expexpdp与impimpdp命令导入导出数据库详解-1

expexpdp与impimpdp命令导⼊导出数据库详解-1转载于:⼀、exp命令导出数据库如何使exp的帮助以不同的字符集显⽰:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中⽂显⽰,如果set nls_lang=American_america.字符集,那么帮助就是英⽂的了。

参数:1.1 导出⽤户全部数据exp 登录名称/⽤户密码@服务命名 FILE=⽂件存储的路径以及名称 log=⽇志存储的路径以及名称 FULL=Y(表⽰导出全部数据,如视图、索引关联关系等等全部的东西)exp hlsoa/hlsoa@orcl file=E:\test\file log=E:\test\log full=y 这是导出本地数据库如果要是导出远程数据库需要修改tnsnames.ora 在连接字符串中将HOST改为远程数据库地址也可以直接通过服务器地址加服务命名解决exphlsoa/*************.1.227/orclfile=E:\test\filelog=E:\test\logfull=y注意:在test⽂件夹下可以新建file.dmp、log.log⽂件也可以不建,系统会⾃动创建。

上⾯命令中可以加⽂件后缀,也可以不加。

但是test这个⽂件夹必须要存在。

1.2导出数据库结构⽽不导出数据exp 登录名称/⽤户密码@服务命名 file=⽂件存储的路径以及名称 log=⽇志存储的路径以及名称 full=y rows=n(不导出⾏数据)exp hlsoa/hlsoa@orcl file=E:\test\file log=E:\test\log full=y rows=n1.3导出⼀个或者多个指定表exp 登录名称/⽤户密码@服务命名 file=⽂件存储的路径以及名称 log=⽇志存储的路径以及名称 tables=表名字exp 登录名称/⽤户密码@服务命名 file=⽂件存储的路径以及名称 log=⽇志存储的路径以及名称 tables=(表1,表2,表3,表N)1.4 导出某个⽤户所拥有的数据库表exp ⽤户名/密码@服务命名 file=存放位置\存放⽂件名.dmp log=存放位置\存放⽂件名.log owner=拥有者⽤户名exp hlsoa/hlsoa@orcl file=E:\test\file log=E:\test\log owner=(hlsoa)1.5 ⽤多个⽂件分割⼀个导出⽂件exp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G tables=hr.paycheck1.6使⽤参数⽂件导出数据exp system/manager@服务命名 parfile=bible_tables.parbible_tables.par(参数⽰例⽂件):#Export the sample tables used for the Oracle8i Database Administrator's Bible.file=bible_tables(⽂件存储的路径以及名称)log=bible_tables(⽇志存储的路径以及名称)tables=(amy.artistamy.booksseapark.checkupseapark.items)1.7 增量导出数据--“完全”增量导出(complete),即备份整个数据库exp system/manager@服务命名 inctype=complete file=990702.dmp--“增量型”增量导出(incremental),即备份上⼀次备份后改变的数据exp system/manager@服务命名 inctype=incremental file=990702.dmp--“累计型”增量导出(cumulative),即备份上⼀次“完全”导出之后改变的数据exp system/manager@服务命名 inctype=cumulative file=990702.dmp导出某个⽤户所拥有的数据库表:exp ⽤户名/密码@服务命名 file=存放位置\存放⽂件名.dmp log=存放位置\存放⽂件名.log owner=拥有者⽤户名1.8估计导出⽂件的⼤⼩--整个数据库全部表总字节数:SELECT sum(bytes)/1024/1024/1024 "占⽤空间:单位GB"FROM dba_segmentsWHERE segment_type = 'TABLE';--指定⽤户所属表的总字节数:SELECT sum(bytes)FROM dba_segmentsWHERE owner = 'SEAPARK'AND segment_type = 'TABLE';seapark⽤户下的aquatic_animal表的字节数:SELECT sum(bytes)FROM dba_segmentsWHERE owner = 'SEAPARK'AND segment_type = 'TABLE'AND segment_name = 'AQUATIC_ANIMAL'⼆、imp 命令导⼊数据库参数:2.1 导⼊⼀个完整数据库imp 登录名称/⽤户密码@服务命名 FILE=数据⽂件存储的路径以及名称 log=⽇志存储的路径以及名称 FULL=Y IGNORE=y(因为有的表已经存在,然后它就报错,对该表就不进⾏导⼊,然后忽略该报错)imp system/manager file=bible_db log=dible_db full=y ignore=y2.2导⼊⼀个或⼀组指定⽤户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seaparkimp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)2.3 将⼀个⽤户所属的数据导⼊另⼀个⽤户imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copyimp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)2.4 导⼊⼀个或者多个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)2.5 从多个⽂件导⼊imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G full=y2.6 使⽤参数⽂件imp system/manager parfile=bible_tables.parbible_tables.par参数⽂件:#Import the sample tables used for the Oracle8i Database Administrator'sBible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import2.7 增量导⼊imp system./manager inctype= RECTORE FULL=Y FILE=A三、expdp命令导出数据库3.1 参数介绍序号关键字说明 (默认)01ATTACH连接到现有作业, 例如 ATTACH [=作业名]。

oracle中imp导入导出命令详解

oracle中imp导入导出命令详解

oracle中imp命令详解Oracle的导入实用程序(Importutility)允许从数据库提取数据,并且将数据写入操作系统文件。

imp使用的基本格式:imp [username[/password[@service]]],以下例举imp常用用法。

1. 获取帮助imp help=y2. 导入一个完整数据库imp system/manager file=d:\daochu.dmp log=d:\daochu.log full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seapark impsystem/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)4. 将一个用户所属的数据导入另一个用户imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1,amy1)5. 导入一个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)6. 从多个文件导入imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)log=paycheck, filesize=1G full=y7. 使用参数文件imp system/manager parfile=bible_tables.parbible_tables.par参数文件:#Import the sample tables used for the Oracle8i Database Administrator's Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import8. 增量导入imp system./manager inctype= RECTORE FULL=Y FILE=A Oracle imp/expC:Documentsand Settingsadministrator>exp help=yExport: Release 9.2.0.1.0 - Production on 星期三 7月 28 17:04:43 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 通过输入 EXP命令和用户名/口令,您可以后接用户名/口令的命令:例程: EXPSCOTT/TIGER或者,您也可以通过输入跟有各种参数的 EXP命令来控制“导出”按照不同参数。

数据库迁移的几种常用方式及优缺点比较

数据库迁移的几种常用方式及优缺点比较

数据库迁移‎的几种方式‎:一、exp/imp:这也算是最‎常用最简单‎的方法了,一般是基于‎应用的ow‎n er级做‎导出导入。

操作方法为‎:在新库建立‎好owne‎r和表空间‎,停老库的应‎用,在老库做e‎x p user/pwd owner‎=XXX file=exp_x‎x x.dmp log=exp_x‎x x.log buffe‎r=60000‎00,传dmp文‎件到新库,在新库做i‎m p user/pwd fromu‎s er=XXX touse‎r=XXX file=exp_x‎x x.dmp log=imp_x‎x x.log ignor‎e=y.优缺点:优点是可以‎跨平台使用‎;缺点是停机‎时间长,停机时间为‎从exp到‎网络传输到‎新库,再加上im‎p的时间。

二、存储迁移:这种情况下‎,数据文件、控制文件、日志文件、spfil‎e都在存储‎上(一般情况下‎是裸设备),我们可以直‎接把存储挂‎到新机器上‎,然后在新机‎器上启动数‎据库。

操作方法:将老库的p‎f ile(因为里面有‎指向裸设备‎的spfi‎l e链接),tnsna‎m es.ora,liste‎n er.ora,密码文件传‎到新库的对‎应位置。

将存储切至‎新机,或者用文件‎拷贝或dd‎的方式复制‎数据文件,启动数据库‎。

优缺点:优点是该迁‎移方式非常‎简单,主要的工作‎是主机工程‎师的工作,dba只需‎配合即可,停机时间为‎当库、切存储、起库的时间‎。

缺点是要求‎新老库都是‎同一平台,是相同的数‎据库版本。

三、利用dat‎a guard‎迁移:用dg我们‎不仅可以用‎来做容灾,物理的dg‎我们还可以‎作为迁移的‎方式。

操作方法:略。

注意swi‎t ch over之‎后,可以将dg‎拆掉,去掉log‎_arch‎i ve_d‎e st_2‎、FAL_S‎E RVER‎、FAL_C‎L IENT‎、stand‎b y_fi‎l e_ma‎n agem‎e nt参数‎。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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=y
2 将数据库中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.dmp
tables=(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 system/manager@TEST file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上ignore=y 就可以了。

2 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
基本上上面的导入导出够用了。

不少情况要先是将表彻底删除,然后导入。

注意:
操作者要有足够的权限,权限不够它会提示。

数据库时可以连上的。

可以用tnsping TEST 来获得数据库TEST能否连上。

附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名IDENTIFIED BY 密码(如果已经创建过用户,这步可以省略)第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , 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
或者imp userid=system/manager full=y file=filename.dmp
执行示例:
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp
屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四2月16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集(可能的ncharset转换)
. 正在将AICHANNEL的对象导入到AICHANNEL
. . 正在导入表"INNER_NOTIFY" 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。

附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:imp parfile=/filepath/import9.par
例import9.par 内容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER 和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log
补充:在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标。

相关文档
最新文档