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)

时间: 2024-09-30 13:02:25

EXP COMPRESS以及EXP/IMP EXPDP/IMPDP导入表结构注意的相关文章

EXP/IMP EXPDP/IMPDP 时间比较

EXP/IMP EXPDP/IMPDP 时间比较 EXP: C:\Documents and Settings\Administrator>exp awen/oracle@orcl buffer=65536 file=d :\awen.dmp  Export: Release 10.2.0.1.0 - Production on 星期四 3月 8 12:49:30 2012  Copyright (c) 1982, 2005, Oracle.  All rights reserved.  连接到

oracle 10g数据泵和导入导出性能对比(二)IMP和IMPDP导入的区别

前一段时间在一次迁移中同时用到了数据泵和EXP,发现二者效率的差别还是相当大的.这里通过一个例子简单比较一下. 这篇文章比较一下IMP和IMPDP导入的区别. 前面对比了EXP和数据泵的导出,可以看到,数据泵导出速度与直接路径导出相比,速度并没有本质的提高,下面看看数据泵的导入方式与IMP的区别. 导入的DMP文件就用上面导出是得到的结果,先看看IMP的导入速度: $ sqlplus "/ as sysdba" SQL*Plus: Release 10.2.0.3.0 - Produc

oracle 11g impdp导入表数据中文不乱码,字段注释中文乱码

问题描述 oracle 11g impdp导入表数据中文不乱码,字段注释中文乱码 oracle 11g impdp导入表数据中文不乱码,字段注释中文乱码,原数据库字符编码AMERICAN_AMERICA.AL32UTF8,目标数据库字符编码AMERICAN_AMERICA.UTF8,百度的方法更改客户端字符集各种情况均已尝试,均以失败告终,望各路达人指导! 解决方案 Oracle 11g OME 中文按钮乱码ORACLE 11G中PLSQL中文显示乱码.Linux下sqlplus查询中文乱码or

如何使用EXPDP/IMPDP导入导出表中数据/元数据测试

首先创建导出目录:  --更详细命令及参数,见:http://blog.csdn.net/haibusuanyun/article/details/12584727 BYS@ bys3>create directory dir_dp as '/home/oracle/'; Directory created. BYS@ bys3>grant read,write on directory dir_dp to public; Grant succeeded. col privilege for

Oracle datapump expdp/impdp 导入导出数据库时hang住

   最近在导出schema级别的数据时被hang住,不得不停止当前的导出作业,如果你有类似的问题,请继续往下看.  1.问题描述    导出整个schema时数据库被hang住,如下所示    符号">"是由SecureCRT设定的每300秒发送一次    oracle@Dev-DB-04:~> expdp goex_admin/xxx directory=db_dump_dir dumpfile=gobo2.dmp logfile=gobo2.log schemas=g

如何将EXP出来的数据IMP进不同的表空间

数据 Author:Kamus Mail:kamus@itpub.net Date:2004-1   经常有人会问:原来的数据在USERS表空间里面,我想把它IMP进APP表空间,我已经修改了目的用户的默认表空间,为什么结果还是IMP到USERS表空间中了呢.   关于此问题,作如下解释: Oracle并没有提供什么参数来指定要导入哪个表空间,数据默认将导入到原本导出时数据所在的表空间中,但是我们可以通过以下的方法来实现导入到不同的表空间.   1.在IMP时候使用INDEXFILE参数 当给此

EXPDP/IMPDP单表住外键

以前都知道在导入单表的时候主外键会有问题,如果主表不存在你自己直接导入子表会出现问题,今天测试了一下 SQL> create table test  2  as  3  select * from dba_users; Table created alter table TESTadd constraint PK_TEST primary key (USER_ID) SQL> create index ind_test  2  on test(username); Index created 

pl /sql导入导出表结构,表数据,sql脚本

导出表结构: Tools-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件 导出表数据: Tools-->Export Tables-->选择表,选择SQL Inserts-->.sql文件   导入表结构: 执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys 导入表数据: 执行刚刚导出的sql文件

exp/imp与expdp/impdp的用法区别

exp/imp与expdp/impdp的用法区别 1:把用户usera的对象导到用户userb,用法区别在于fromuser=usera touser=userb ,remap_schema='usera':'usera' .例如 imp system/passwd fromuser=usera touser=userb file=/oracle/exp.dmp log=/oracle/exp.log; impdp system/passwd directory=expdp dumpfile=e