IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    11G exp deferred_segment_creation 导致exp expdmp空表不能导出解决方案:

    admin发表于 2015-05-20 09:30:36
    love 0

    deferred_segment_creation 延迟段创建是11.2的新特性, 当创建一个 空表或者空分区时,实际的表段table segment被延迟到第一行数据插入的时候。
    该功能通过DEFERRED_SEGMENT_CREATION参数启用,默认为TRUE.

    由DEFERRED_SEGMENT_CREATION启用的新的空间分配方式的优势在于:

    若系统安装后存在大量空表,而这些空表将从不会加载任何数据;假设一个空表占用64k(db_block_size=8,一个extent)的空间,则若存在一万张这样的空表
    就要消耗625M的空间

    当应用程序初次安装需要创建大量空表时,因为延迟了数据段创建的过程,所以可以节约大量时间
    当向这些空表或者空分区插入第一行数据时,对应的表、LOb字段和索引的segment段会被创建。

    —-下面说说重点,批量让空表可以导出:
    select 'alter table '||A.OWNER||'.'||a.TABLE_NAME||' allocate extent(size 1m);'
    from dba_tables a
    where a.segment_created = 'NO'
    AND A.OWNER NOT IN ('SYS',
    'DBSNMP',
    'WMSYS',
    'APPQOSSYS',
    'CTXSYS',
    'MDSYS',
    'OLAPSYS',
    'SYSMAN',
    'APEX_030200',
    'EXFSYS',
    'ORDSYS',
    'ORDDATA',
    'FLOWS_FILES',
    'ORDDATA',
    'OWBSYS');

    然后跑一下上面脚本,就可以导出了,记得检查表空间使用情况哟!



沪ICP备19023445号-2号
友情链接