EXP COMPRESS以及EXP/IMP EXPDP/IMPDP导入表结构注意

关于EXP COMPRESS参数
一直对这个参数有些疑惑。当然此参数一定不是所谓的压缩备份文件的空间,
而它的解释为
COMPRESS   import into one extent
字面意思为把所有的EXTENT压缩到INIT 分区中。但是这个实际上这个只在数据字典管理
的中生效。但是在本地管理表空间中实际initial 也是有用的但是他不会分配到一个EXTENT中,
因为本地管理表空间默认EXTENT管理的方式是AUTO。分区大小是大小是64K,1M,8M..的方式,
但是他一定会分配足够的空间
所以
测试期间我建立了一个大约20M的表,然后DELETE全部记录,COMMIT掉
然后做如下操作:
exp ppzhu/gelc123@bendi  COMPRESS=n tables=test1 file=c:\test1n.dmp
exp ppzhu/gelc123@bendi  COMPRESS=y tables=test1 file=c:\test1y.dmp


然后进行导入
imp ppzhut1/gelc123@bendi fromuser=ppzhu touser=ppzhut1 file=c:\test1y.dmp
发现一共分了20个EXTENT
SQL> select count(*) from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
 
  COUNT(*)
----------
        20
每个1M
然后查看其建立表的语句如下:
create table PPZHUT1.TEST1
(
  IT INTEGER
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 20M
    minextents 1
    maxextents unlimited
  );




然后删除表导入COMPRESS=n的导出的DMP如下:
可以看到实际COMPRESS=n是实际的占用空间,
SQL> select count(*) from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
 
  COUNT(*)
----------
         1
 
SQL> select sum(blocks)*8/1024 from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
 
SUM(BLOCKS)*8/1024
------------------
            0.0625
 
查看建表语句
-- Create table
create table PPZHUT1.TEST1
(
  IT INTEGER
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
没有问题。
同样的EXPDP也会有这样的问题,IMPDP的时候需要加上参数
TRANSFORM=SEGMENT_ATTRIBUTES:n


这也是为什么导出表结构的时候需要使用COMPRESS=n的原因。
所以总结一下导出表结构的方式:
1、EXP使用COMPRESS=n导出(ROWS=N)
2、EXPDP不使用任何参数,IMPDP使用TRANSFORM=SEGMENT_ATTRIBUTES:n导入(CONTENT=METADATA_ONLY)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7728585/viewspace-1267192/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7728585/viewspace-1267192/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值