oracle import/export 命令
exp/imp 实例
??? exp help=y 查看帮助
exp
1、exp usr/pwd@sid? file=c:\tb.dump? tables=tb1
?? 如果是导出多个表,tables=(tb1、tb2)
2、exp usr/pwd@sid? file=c:\tb.dump? --全部导出
3、exp usr/pwd@sid? file=c:\tb.dump? owner=(system,sys)?
?? 将用户system和sys用户下的表都导出
4、exp usr/pwd@sid? file=c:\tb.dump? tables=tb1 query=\"where name='ha'\"
?? 注意分号的位置
?
?
通过以下命令可以查看说明。
c:\>imp help=y
c:\>exp help=y
?
oracle Export and Import 简介
?
1、Export/Import的用处
Oracle?Export/Import工具用于在数据库之间传递数据。?
Export从数据库中导出数据到dump文件中?
Import从dump文件中到入数据导数据库中?
下面是一般使用他们的情况?
(1)、两个数据库之间传送数据?
???????同一个版本的oracle?Server之间?
???????不同版本的oracle?Server之间?
???????同种OS之间?
???????不同种OS之间?
(2)、用于数据库的备份和恢复?
(3)、从一个SCHEMA传送到另一个SCHEMA?
(4)、从一个TABLESPACE传送到另一个TABLESPACE?
2、DUMP文件?
EXPORT到出的是二进制格式的文件,不可以手工编辑,否则会损坏数据。?
该文件在ORACLE支持的任何平台上都是一样的格式,可以在各平台上通用。?
DUMP文件在IMPORT时采用向上兼容方式,就是说ORALCE7的DUMP文件可以导入?
到ORACLE8中,但是版本相差很大的版本之间可能有问题。?
3、EXPORT/IMPORT过程?
EXPORT导出的DUMP文件包含两种基本类型的数据?
????-?DDL?
????-?Data?
DUMP文件包含所有重新创建Data?Dictionary的DDL语句,基本上是可以读的格式。
但是应该注意的是,千万不要用文本编辑器编辑之,oracle说不支持这样做的。?
4、IMPORT时的对象倒入顺序?
在倒入数据时,ORACLE有一个特定的顺序,可能随数据库版本不同而有所变化。????????????
???????????????????????????
按这个顺序主要是解决对象之间依赖关系可能产生的问题。TRIGGER最后导入,所以在INSERT?
数据到数据库时不会激发TRIGGER。在导入后可能会有一些状态是INVALID的PROCEDURE,主要?
是IMPORT时会影响一些数据库对象,而IMPORT并不重新编译PROCEDURE,从而造成这种情况,?
可以重新编译之,就能解决这个问题。?
5、兼容性问题?
IMPORT工具可以处理EXPORT?5.1.22之后的版本导出的DUMP文件,所以你用ORACL E7的IMPORT?
处理ORACLE6的DUMP文件,依次类推,但是ORACLE如果版本相差很大有可能不能处理。具体的?
问题可以参照相应的文档,比如有关参数设置等(COMPATIBLE参数)?
6、EXPORT需要的VIEW?
EXPORT需要的VIEW是由CATEXP.SQL创建,这些内部VIEW用于EXPORT组织DUMP文件中数据格式。?
大部分VIEW用于收集创建DDL语句的,其他的主要供ORACLE开发人员用。?
这些VIEW在不同ORACLE版本之间有可能不同,每个版本可能都有新的特性加入。
所以在新的版本里面执行旧的dump文件会有错误,一般可以执行CATEXP.SQL解决这些问题,
解决向后兼容问题的一般步骤如下:?
???
??导出数据库的版本比目标数据库老的情况:?
??-?在需要导入的目标数据库中执行旧的CATEXP.SQL?
??-?使用旧的EXPORT导出DUMP文件??
??-?使用旧的IMPORT导入到数据库中?
??-?在数据库中执行新的CATEXP.SQL,以恢复该版本的EXPORT?VIEW?
??导出数据库的版本比目标数据库新的情况:?
??-?在需要导入的目标数据库中执行新的CATEXP.SQL?
??-?使用新的EXPORT导出DUMP文件??
??-?使用新的IMPORT导入到数据库中?
??-?在数据库中执行旧的CATEXP.SQL,以恢复该版本的EXPORT?VIEW?
7、碎片整理?
EXPORT/IMPORT一个很重要的应用方面就是整理碎片。因为如果时初次IMPPORT,就会重新CREATE?TABLE?再导入数据,所以整张表都是连续存放的。另外缺省情况下下EXPORT会在生成DUMP文件是“压缩(COMPRESS)”TABLE,但是这种压缩在很多情况下被误解。事实上,COMPRESS是改变STORAGE参数INITIAL的值。比如:??
??CREATE?TABLE?....?STORAGE(?INITIAL?10K?NEXT?10K..)?
??现在数据已经扩展到100个EXTENT,如果采用COMPRESS=Y来EXPORT数据,?
??则产生的语句时?STORAGE(?INITIAL?1000K?NEXT?10K)?
??我们可以看到NEXT值并没有改变,而INITIAL是所有EXTENT的总和。所以会出现
如下情况,表A有4个100M的EXTENT,执行DELETE?FROM?A,然后再用COMPRESS=Y?导
出数据,产生的CREATE?TABLE语句将有400M的INITIAL?EXTENT。即使这是TABLE中
已经没有数据!!这是的DUMP文件即使很小,但是在IMPORT时就会产生一个巨大的TABLE.?
??另外,也可能会超过DATAFILE的大小。比如,有4个50M的数据文件,其中表A有
15个10M的EXTENT,如果采用COMPRESS=Y的方式导出数据,