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

简介: 关于EXP COMPRESS参数 一直对这个参数有些疑惑。当然此参数一定不是所谓的压缩备份文件的空间, 而它的解释为 COMPRESS   import into one extent 字面意思为把所有的EXTENT压缩到INIT 分区中。
关于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)
目录
打赏
0
0
0
0
91
分享
相关文章
exp/imp与expdp/impdp的用法区别
<p><br></p> <p></p> <div class="newBlog-title" style="line-height:15px; margin:0px auto; padding:0px 0px 8px; border-width:0px 0px 1px; border-bottom-style:dotted; border-bottom-color:rgb(228,22
2840 0
[20130618]imp(impdp)以及lob的导入问题.txt
[20130618]imp(impdp)以及lob的导入问题.txt前几天要建立一个测试库,数据库很小50G,我想导入这么数据库exp/imp应该很快完成,结果我发现大约花了8个多小时.
1233 0
EXP/IMP EXPDP/IMPDP 时间比较
<p><span style="font-family:'lucida Grande',Verdana,'Microsoft YaHei'; font-size:14px"><strong><span style="white-space:pre"></span><span style="color:#00cccc">EXP/IMP EXPDP/IMPDP 时间比较</span></str
2828 0
ORACLE exp/imp导入报错IMP-00009&IMP-00028&IMP-00015
    2017年8月14日,一实施同事使用imp导入exp导出的dmp文件时,遇到报错IMP-00009&IMP,具体报错如图所示: 出现报错的原因可能是dmp文件本身不完整,如果仍要导入数据,可以对imp命令加上commit=yes进行控制,可行的imp导入命令...
2877 0
通过EXP和IMP移动表空间
缺省情况下,导入试图在与导出相同的表空间中创建对象。如果用户不具有那个表空间的权限,或者那个表空间不存在时,Oracle在用户帐户的缺省表空间中创建数据库对象。这些特性可以用于使用导出与导入在表空间之间移动数据库对象。
758 0
Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
2027 0
exp/imp导入导出版本问题和ORA-6550报错
前几天有位同事问到exp/imp是否涉及到版本问题,我认为,只要是软件,都会涉及到高低版本的兼容性问题,Oracle也是软件,自然也是这样。 简单的实验: exp工具版本:10g 导出的source数据库版本:9i bash-4.
1124 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等