`
旷世cC
  • 浏览: 25481 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

11g新特性导出空表的问题

阅读更多
11G中有个新特性,当表无数据时,不分配segment,以节省空间
  解决方法:

  1、insert一行,再rollback就产生segment了。

  该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。

  2、设置deferred_segment_creation 参数

show parameter deferred_segment_creation

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation            boolean     TRUE
SQL> alter system set deferred_segment_creation=false;

系统已更改。

SQL> show parameter deferred_segment_creation

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation            boolean     FALSE





  该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。

  需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。

搞了我好久,最后查到这个方法。

先查询一下当前用户下的所有空表

select table_name from user_tables where NUM_ROWS=0;

用以下这句查找空表

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

把查询结果导出,执行导出的语句

'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table AQ$_AQ$_MEM_MC_H allocate extent;
alter table AQ$_AQ$_MEM_MC_G allocate extent;
alter table AQ$_AQ$_MEM_MC_I allocate extent;
alter table AQ$_AQ_PROP_TABLE_T allocate extent;
alter table AQ$_AQ_PROP_TABLE_H allocate extent;
alter table AQ$_AQ_PROP_TABLE_G allocate extent;
alter table AQ$_AQ_PROP_TABLE_I allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_T allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_H allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_G allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_I allocate extent;

'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table AQ$_SYS$SERVICE_METRICS_TAB_T allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_H allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_G allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_I allocate extent;

然后再执行

exp 用户名/密码@数据库名 file=/home/oracle/exp.dmp log=/home/oracle/exp_smsrun.log

  成功!




==============================
本文内容来源于网络
http://wanwentao.blog.51cto.com/2406488/545154
============================
分享到:
评论

相关推荐

    oracle 11g R2 exp无法导出空表的解决方法

    Oracle 11g R2 中新增的特性,使得 exp 无法导出空表,这是因为 11g R2 中有一个新特性,即当表无数据时,不分配 segment,以节省空间。这种情况下,使用 exp 命令无法导出空表。下面将介绍四种解决方法: 解决...

    Oracle11g使用exp导出空表

    在使用Oracle11g数据库时,用户可能会遇到在使用exp导出工具导出数据时无法导出空表的问题。空表是指那些没有数据行的表,这在Oracle数据库中比较常见。Oracle11g为提高性能和节省空间,默认情况下对空表不分配...

    oracle11G-解决空表导出的问题

    通过以上步骤,你应该能够在Oracle 11g中成功地导出空表。在实际操作中,记得根据自己的具体环境调整参数,确保数据导出的准确性和完整性。对于大型数据库,推荐使用expdp,因为它更高效,且支持并行处理和更多高级...

    Oracle11g使用exp导出空表方法

    总之,尽管Oracle11g默认不导出空表,但通过自定义脚本或使用“FULL”选项,我们可以轻松地将空表包含在导出过程中。在进行此类操作时,理解数据库结构、权限以及导出/导入过程的细节至关重要,以确保数据的完整性和...

    数据库oracle11g导出 空表

     ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间。 解决方法:  1)insert一行,再rollback就产生segment了  该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。 ...

    oracle 11g不能导出空表的解决方法

    在Oracle 11g数据库系统中,用户可能会遇到无法导出空表的问题,这主要与Oracle 11g引入的一个新特性有关,即deferred_segment_creation参数。这个参数默认为true,它的作用在于延迟段的创建。当这个参数启用时,...

    oracle11g导出空表、少表的解决方案

    Oracle 11g 导出空表、少表的解决方案 在 Oracle 11g 中,有一个新特性:当表无数据时,不分配 segment,以节省空间。这使得在通过 exp 导出时,无法导出没有分配 segment 的表。解决这个问题有两种情况: 情况一...

    oracle11G数据导出

    通过以上方法,你可以有效地处理Oracle 11G在数据导出和导入时遇到的空表问题。确保在进行数据迁移时考虑到这些差异,以避免不必要的错误和数据丢失。同时,理解数据库版本间的差异对于顺利进行数据库管理和维护至关...

    导出空表解决方法

    本篇将详细介绍如何解决导出空表时遇到的挑战,特别是针对Oracle 11g R2版本中的一个特性——Deferred Segment Creation(延迟段创建)所带来的问题。 #### Deferred Segment Creation概述 Deferred Segment ...

    Oracle11g和oracle10g之间数据的导入导出.

    - 在Oracle 11g中,EXP命令无法导出数据库中的空表,但可以通过EXPDP实现这一需求。 - Oracle 11g通过EXP导出的数据无法通过IMP导入到Oracle 10g中,但是可以通过EXPDP和IMPDP完成。 - IMPDP/EXPDP是服务器端命令...

    Oracle11G导入导出(imp和exp)少表解决方法.docx

    然而,在11G R2 版本中,由于一个新特性,空表在没有数据的情况下不会分配 segment,导致无法通过 exp 导出。这个问题可以通过以下几种方法解决: 1. **插入并回滚数据**:向空表中插入一行数据,然后执行 rollback...

    oralce导入导出

    这一特性虽然有助于提高存储效率,但也带来了一些问题,比如在使用传统 `exp` 工具进行数据导出时,无法导出空表。 - **解决方法**:为了导出空表,可以采用以下几种方法之一: - 在空表中插入一行数据,然后回滚...

    orccle11g 64位 常见的问题总结

    Oracle 11g引入了一个新特性,即当表为空时不分配segment以节省空间。这可能导致在尝试导出空表时出现问题,影响数据的实用性。 解决这个问题,可以通过设置`deferred_segment_creation`参数为`FALSE`: 1. 在SQL*...

    linux下poi读取word空指针异常问题解决

    在本案例中,这一操作成功解决了空指针异常问题。 - 这可能是因为Word 2010的格式与POI 3.9的兼容性更好。 2. **更新POI版本**: - 如果更改文档版本后仍然存在问题,可以考虑升级POI到更高版本。例如,可以尝试...

    LINUX导入数据库

    #### 一、Oracle 11G中的新特性:空表导出问题及其解决方案 在Oracle 11G R2版本中,为了节省存储空间,引入了一个新特性:当表中没有数据时,不会为该表分配segment(即存储空间)。这导致了一个问题——使用传统...

    oracle11gR2使用exp导出命令时报EXP-00011错误的解决方法

    这个问题通常与 Oracle 11gR2 引入的一个新特性—— Deferred Segment Creation(延迟段创建)有关。这个特性旨在提升数据库对象创建的效率,它会延迟对那些在创建时没有数据、不需要立即分配 Segment 的对象的 ...

    数据泵的方法迁移oracle11gR2完整版

    2. **Oracle 11gR2中无法使用EXP导出空表的问题**: - 在Oracle 11gR2中,如果尝试使用传统的EXP工具导出包含空表的数据库,空表可能不会被包含在导出文件中。这是由于EXP工具的设计限制,它主要关注于用户数据的...

    Oracle+11g安装后参数规范设置.pdf

    - **说明**: 该参数用于禁用11g中的段延迟创建特性,以避免因该特性而引发的各种BUG,例如数据导入导出错误、表空间删除后仍存在于数据字典等问题。 3. **自动serial direct path read和用户验证延迟特性关闭** ...

    Oracle 10g 数据库入门与实践

    Oracle 10g数据库是Oracle公司推出的一款关系型数据库管理系统,尤其适合大型企业级应用。本教程《Oracle 10g 数据库入门与实践》旨在帮助初学者掌握Oracle数据库的基本概念、操作和管理技巧,同时也为有经验的...

Global site tag (gtag.js) - Google Analytics