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 Imp
1、Export/Imp
Oracle Export/Imp
Export从数据库中导出数据到dump文件中 Imp 下面是一般使用他们的情况 (1)、两个数据库之间传送数据 同一个版本的oracle Server之间 不同版本的oracle Server之间 同种OS之间 不同种OS之间 (2)、用于数据库的备份和恢复 (3)、从一个SCHEMA传送到另一个SCHEMA (4)、从一个TABLESPACE传送到另一个TABLESPACE 2、DUMP文件 EXPORT到出的是二进制格式的文件,不可以手工编辑,否则会损坏数据。 该文件在ORACLE支持的任何平台上都是一样的格式,可以在各平台上通用。 DUMP文件在IMP 到ORACLE8中,但是版本相差很大的版本之间可能有问题。 3、EXPORT/IMP EXPORT导出的DUMP文件包含两种基本类型的数据 - DDL - Da DUMP文件包含所有重新创建Da 但是应该注意的是,千万不要用文本编辑器编辑之,oracle说不支持这样做的。 4、IMP 在倒入数据时,ORACLE有一个特定的顺序,可能随数据库版本不同而有所变化。 按这个顺序主要是解决对象之间依赖关系可能产生的问题。TRIGGER最后导入,所以在INSERT 数据到数据库时不会激发TRIGGER。在导入后可能会有一些状态是INVALID的PROCEDURE,主要 是IMP 可以重新编译之,就能解决这个问题。 5、兼容性问题 IMP 处理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文件 - 使用旧的IMP - 在数据库中执行新的CATEXP.SQL,以恢复该版本的EXPORT VIEW 导出数据库的版本比目标数据库新的情况: - 在需要导入的目标数据库中执行新的CATEXP.SQL - 使用新的EXPORT导出DUMP文件 - 使用新的IMP - 在数据库中执行旧的CATEXP.SQL,以恢复该版本的EXPORT VIEW 7、碎片整理 EXPORT/IMP
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文件即使很小,但是在IMP 另外,也可能会超过DATAFILE的大小。比如,有4个50M的数据文件,其中表A有 15个10M的EXTENT,如果采用COMPRESS=Y的方式导出数据,将会有INITIAL=150M, 那么在重新导入时,不能分配一个150M的EXTENT,因为单个EXTENT不能跨多个文件。 8、在USER和TABLESPACE之间传送数据 一般情况下EXPORT的数据要恢复到它原来的地方去。如果SCOTT用户的表以TABLE 或USER方式EXPORT数据,在IMP 当然可以在IMP TOUSER一定已经存在啦。 9、EXPORT/IMP 在两种情况下,EXPORT/IMP (1)如果在EXPORT时,用户正在取SEQUENCE的值,可能造成SEQUENCE的不一致。 (2)另外如果SEQUENCE使用CACHE,在EXPORT时,那些在CACHE中的值就会被忽略的, 只是从数据字典里面取当前值EXPORT。 如果在进行FULL方式的EXPORT/IMP 如果采用常规路径方式,每一行数据都是用INSERT语句,一致性检查和INSERT T RIGGER 如果采用DIRECT方式,某些约束和trigger可能不触发,如果在trigger中使用sequence.nextval,将会对sequence有影响。
再保存个东西:
查看当前用户每个表占用空间的大小:
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name 查看每个表空间占用空间的大小: Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name
本文转自:
|
oracle import/export 命令
最新推荐文章于 2021-09-28 15:42:47 发布
本文详细介绍了Oracle Export/Import工具的使用方法及注意事项,包括如何导出指定表或用户的所有表,并提供了实际操作命令示例。此外还探讨了DUMP文件的兼容性问题及如何利用exp/imp进行数据碎片整理。
1177

被折叠的 条评论
为什么被折叠?



