如何正确使用ORACLE的exp和imp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正确使用ORACLE的exp和imp相关的知识,希望对你有一定的参考价值。

参考技术A 1、EXP和IMP工具是否可以跨平台使用?比如我在WINDOWS上用EXP导出数据之后到LINUX或者UNIX上用IMP导入数据?
可以,但一般都是用同样的工具做导出和导入,WINDOWS上和UNIX上的ENDIANNESS不同,混用的话,这个工具有BUG。
2、EXP和IMP工具是否可以跨版本使用?比如我用9i的EXP工具导出数据之后到10g上用IMP导入数据这样是否可以?
这个工具有挺严格的版本限制,不能跨版本使用,你举例的这种会不识别的。
3、EXP导出的时候,TABLE参数填写的是多个表名,那么在IMP的时候是否可以只导入其中的某一个表,该如何操作?
EXP
tables=(tab1,tab2)
IMP
tables=(tab2)
没有什么特别的,这个自己试一下就知道了
4、EXP导出的数据,在IMP的时候如果机器上没有对应的表,IMP工具是否会自动创建表结构?是否必须我手动先创建好表结构才能IMP成功?
IMP时候会自动执行CREATE语句,然后才是INSERT,所以你的问题恰好说反了,
是如果你已经建好表结构的话,IMP会报警告,说这个表已经存在了,需要在导入时IGNORE=Y
5、EXP导出的数据,在IMP的时候目标机器上的数据库表空间分配是否必须和原来的机器上的一致(空间大小肯定够,就是空间的其他配置是否必须一致)?如果不一致是否可以?
这个工具有个限制,导出时候的表空间名必须就是导入到这个同样名称的表空间里面,如果没有这个表空间的话,导入失败,
不知道你说的其他配置是什么配置,我只能说只要名称相同的话,问题不大,具体问题具体分析了。

如何在Oracle中使用exp和imp导出,导入dmp数据库文件

1、首先进入命令行,点击开始,输入cmd。

2、键盘按回车键,出现命令行窗口。

3、接着导入的命令是:imp 用户名/密码@网络服务名 file=xxx.dmp full=y。

4、导出的命令是:exp 用户名/密码@网络服务名 file=xxx.dmp tables=(表名)

5、就可以进行dmp数据库表结构和表数据的同时导入导出了,这样就完成了。

参考技术A 在Oracle中使用exp和imp导出,导入dmp数据库文件:
一,oracle数据库导出工具 exp:
1. 它是一个可执行的文件 存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个二进制系统文件. 它有三种模式:
a. 用户模式:导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子
$exp test/test123@appd
Enter array fetch buffer size: 4096 > 回车
Export file: expdat.dmp > m.dmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回车wQeLin
Compress extents (yes/no): yes > 回车
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path ...wQeLinux联盟
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名
. . exporting table CMAMENU 4336 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名n
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车
Export terminated successfully without warnings.
3. 导出工具exp非交互式命令行方式的例子
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"打头的数据导出
二,oracle数据库导入工具 imp:
1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
imp导入工具将EXP形成的二进制系统文件导入到数据库中.
它有三种模式:
a. 用户模式: 导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
2.导入工具imp交互式命令行方式的例子
$ imp
Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001
(c) Copyright 1999 Oracle Corporation. All rights reserved.
用户名: test
口令:****
连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
导入文件: expdat.dmp> /tmp/m.dmp
输入插入缓冲区大小(最小为 8192 ) 30720>
经由常规路径导出由EXPORT:V08.01.06创建的文件
警告: 此对象由 TEST 导出, 而不是当前用户
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
只列出导入文件的内容(yes/no):no>
由于对象已存在, 忽略创建错误(yes/no):no> yes
导入权限(yes/no):yes>
导入表数据(yes/no):yes>
导入整个导出文件(yes/no):no> yes
. 正在将TEST的对象导入到 SCOTT
. . 正在导入表 "CMAMENU" 4336行被导入
成功终止导入,但出现警告。本回答被提问者采纳

以上是关于如何正确使用ORACLE的exp和imp的主要内容,如果未能解决你的问题,请参考以下文章

oracle exp/imp 详解

oracle的imp使用方法

Oracle数据库中表的imp&exp

oracle中exp,imp的使用详解

oracle中exp,imp的使用详解

oracle exp/imp工具使用