[20120410]EXP&IMP和COMPRESS参数.txt

[20120410]EXP&IMP和COMPRESS参数.txt

测试需要要建立一个空库,我使用EXP&IMP操作,很久不使用它操作,发现导入过程有一些慢,最终发现一个参数compress影响导入操作。
缺省COMPRESS=Y,这样在导入时需要初始很大的空间。

测试如下:

SQL> select * from v$version ;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> create table t as select rownum id,'test' name from dual connect by level
Table created.

1.查看空间使用:

SQL> select sum(blocks) as blocks, sum(bytes) as bytes  from user_extents where segment_name ='T';
    BLOCKS      BYTES
---------- ----------
       112     917504
SQL> SELECT dbms_metadata.get_ddl('TABLE','T') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','T')
---------------------------------------------------------------------------------------------------------------
  CREATE TABLE "SCOTT"."T"
   (    "ID" NUMBER,
        "NAME" CHAR(4)
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"

2.使用EMP文件:

$ exp userid=scott/xxx file=t.dmp log=t_log.txt tables=T COMPRESS=Y
Export: Release 11.2.0.1.0 - Production on Tue Apr 10 09:44:28 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
. . exporting table                              T      50000 rows exported
Export terminated successfully without warnings.

--另外exp help=y ,可以发现缺省COMPRESS=Y,意思是COMPRESS   import into one extent (Y)。

3.导入:

SQL> alter table T rename to TOLD;
$ imp userid=scott/xxx file=t.dmp log=imp_log.txt fromuser=scott touser=scott
Import: Release 11.2.0.1.0 - Production on Tue Apr 10 09:55:30 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V11.02.00 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing SCOTT's objects into SCOTT
. . importing table                            "T"      50000 rows imported
Import terminated successfully without warnings.

·

4.查询:

SQL> select sum(blocks) as blocks, sum(bytes) as bytes  from user_extents where segment_name ='T';
    BLOCKS      BYTES
---------- ----------
       112     917504
SQL> SELECT dbms_metadata.get_ddl('TABLE','T') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','T')
----------------------------------------------------------------------------------------------------------------
  CREATE TABLE "SCOTT"."T"
   (    "ID" NUMBER,
        "NAME" CHAR(4)
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 917504 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"

--可以发现INITIAL=917504.这样如果导入的是空表,开始占用的空间就很大,当然我的测试是11G,段延迟的特性建立空表不占用空间。
--但是一旦分配空间,占用就很大。

5.改用COMPRESS=N参数

SQL> drop table t purge ;
Table dropped.
SQL> alter table told rename to t ;
Table altered.
$ exp userid=scott/xxx file=t.dmp log=t_log.txt tableOs=T COMPRESS=N
SQL> alter  table t rename to told ;
Table altered.
$ imp userid=scott/xxx file=t.dmp log=imp_log.txt fromuser=scott touser=scott
SQL> SELECT dbms_metadata.get_ddl('TABLE','T') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','T')
----------------------------------------------------------------------------------------------------------------
  CREATE TABLE "SCOTT"."T"
   (    "ID" NUMBER,
        "NAME" CHAR(4)
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"
时间: 2024-07-30 10:48:22

[20120410]EXP&IMP和COMPRESS参数.txt的相关文章

[20171105]exp imp buffer参数解析.txt

[20171105]exp imp buffer参数解析.txt oracle官方所给的关于buffer的解释如下: https://docs.oracle.com/cd/A84870_01/doc/server.816/a76955/ch01.htm BUFFER Default: operating system-dependent. See your Oracle operating system-specific documentation to determine the defaul

[20140827]imp exp 使用管道迁移数据.txt

[20140827]imp exp 使用管道迁移数据.txt --最近帮别人升级一套数据库,9i到11g. --那个慢真让人受不了,也许是以前的老机器性能不行.数据量并不大.导出花了时间比较长. --我很久就知道导出可以管道压缩导出文件,实现一边导出一边压缩的功能,现在硬盘空间都很大,很少考虑这种方式. --而且现在很少使用这种方式备份数据. --是否可以使用管道实现一边导出一边导入呢?这样可以节约时间,我做了一个测试: --全部操作都在目的端进行,主要是exp/imp版本问题(烦),操作系统都

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

关于EXP COMPRESS参数 一直对这个参数有些疑惑.当然此参数一定不是所谓的压缩备份文件的空间, 而它的解释为 COMPRESS   import into one extent 字面意思为把所有的EXTENT压缩到INIT 分区中.但是这个实际上这个只在数据字典管理 的中生效.但是在本地管理表空间中实际initial 也是有用的但是他不会分配到一个EXTENT中, 因为本地管理表空间默认EXTENT管理的方式是AUTO.分区大小是大小是64K,1M,8M..的方式, 但是他一定会分配足够

[20160803]exp/imp语法问题.txt

[20160803]exp/imp语法问题.txt --那个给我解析exp这种语法: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ------------------------------------------------------------------------------

[20120918]exp要注意的问题CONSISTENT参数.txt

[20120918]exp要注意的问题CONSISTENT参数.txt     前几天开发要导出一个schema做测试,因为新程序改动太大,要求导出一份该schema下的全部数据,开发导入后出现 一些错误,反馈日志log后,才发现是主外键的问题,原来我忘记在导出时加入参数CONSISTENT=y. 缺省这个参数是N. 今天做一个测试看看差别在哪里: exp前先刷新共享池. alter system flush shared_pool; host exp sh/xxxxxx file=aaa.dm

Oracle exp/imp命令快速导入导出数据

用exp命令导出表结构,不导出表数据.只需在命令行里加一个参数rows=n即可.表示不导出表数据. exp username/pwd@sid file=d:databak.dmp owner=(user)rows=n ******************************************************************************************************************** oracle exp/imp命令详解 E:>ex

Oracle 管道 解决Exp/Imp大量数据处理问题_oracle

先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的exp所产生的dmp文件可能小于2GB, 但对稍大型的数据库, exp产生的数据动辄数十至上百个GB. 而现时多数操作系统为32位, 其文件系统允许的最大文件为2GB. 这样显然不能由文件系统存放exp产生的数据. 这是问题之一. 另一个问题是随着数据库的不断增大, exp所需时间越来越长以致实际上很难实施. 本文针对以上两个问题讨论相应对策. 我们以UNIX为

EXP/IMP 学习(三)

1.3  优化1.  加快exp速度加大 large_pool_size,可以提高 exp的速度 采用直接路径的方式(direct=y),数据不需要经过内存进行整合和检查. 设置较大的 buffer,如果导出大对象,小 buffer会失败.export文件不在 ORACLE使用的驱动器上 不要 export到 NFS文件系统UNIX环境:用管道模式直接导入导出来提高 imp/exp的性能 2.  加快imp速度建立一个 indexfile,在数据 import完成后在建立索引将 import 文

【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中

[exp/imp]将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中   1.1  BLOG文档结构图     1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 如何将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中(重点,2种方法)? ② 从dmp文件可以获取到哪些信息?如何从dmp文件获取到dmp文件的字符集(重点,N种方法)? ③