使用exp进行逻辑备份的时候,它是不压缩的。也就是可能会占据相对比较大空间。这里我有必要解释一下exp的参数compress。这个参数其实不是表示压缩的意思,它表示的意思是:exp
compress=y表示將源表所有数据(总大小)压缩到一个extent中,在导入的时候只是导入到目标表的initial中,这样可能导致目标表空间不足(只用到init
extent,而目标表的initial可能设置比较小)
。所以一般使用exp
compress=n,这样原来的表的storage结构也一样导入到目标表。不至于出现都导入目标表的initial种的情况。
因此要想拿到一个压缩的exp出来的文件,可以先exp出来一个文件,然后利用OS命令来压缩这个文件,可是这样一做的意义不大。下面介绍一种直接通过exp就可以生成压缩文件的方法,它其实就是一个exp命令和操作系统的压缩命令以及管道的综合运用。
我的目的是想将scott用户下面的信息导入到另外两个新建的用户tiger和enix下面去。首先,建立必要的测试用户,这里省略。然后:
[oracle11g@csdba1850
test]$ exp system/oracle owner=scott compress=n
file=scott_nocom.dmp
Export: Release
11.1.0.6.0 - Production on Thu Nov 8 16:54:23 2007
Copyright (c) 1982,
2007, Oracle. All rights
reserved.
......
[oracle11g@csd