`

Oracle 11G在用EXP 导出时,空表不能导出解决

 
阅读更多
<!--正文 begin-->

  11G中有个新特性,当表无数据时,不分配segment,以节省空间

  解决方法:

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

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

  2、设置deferred_segment_creation 参数<!--IWMS_AD_BEGIN-->

 

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

 

 

<!--IWMS_AD_END-->

 

 

  该参数值默认是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

  成功!

 

分享到:
评论

相关推荐

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

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

    Oracle11g使用exp导出空表

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

    Oracle11g使用exp导出空表方法

    然而,Oracle11g在设计时默认对空表不分配segment,因此在使用exp导出数据库时,空表不会被包含在导出文件中。这对于完整备份和恢复所有表的场景来说,可能是一个问题。下面,我们将详细讨论如何处理这个问题,以及...

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

    Oracle 11G 导入导出(imp 和 exp)少表解决方法 Oracle 11G 是一个功能强大且复杂的数据库管理系统,它提供了多种方式来导入和导出数据。然而,在使用 Oracle 11G 时,用户可能会遇到一些问题,例如无法导出空表...

    oracle11g不能导出空表的解决方式

    然而,在使用 exp 命令导出 Oracle 11g 数据库时,空表会出现错误,这是因为 Oracle 11g 默认对空表不分配 segment。为了解决这个问题,我们可以使用以下几种方法。 方法 1: 修改 deferred_segment_creation 参数 ...

    解决Oracle导出dmp文件空表导不出问题.docx

    在使用Oracle数据库的过程中,可能会遇到一个常见的问题:当尝试使用工具如PL/SQL Developer导出包含空表的DMP文件时,这些空表无法被正确地导出。这一问题的出现通常与Oracle数据库中的`deferred_segment_creation`...

    oracle11G-解决空表导出的问题

    针对空表导出的问题,本教程将深入探讨如何在Oracle 11g中正确执行这一操作,并提供具体的操作步骤。 1. **理解Oracle数据导出工具**: - **exp**: Oracle的传统数据导出工具,基于PL/SQL,适用于小型数据库和简单...

    Oracle 11g R2 执行export导出时 空表无法导出原因及解决方法

    Oracle 11g R2 版本中,在执行export导出时,可能会出现空表无法导出的问题,本文将会详细介绍这个问题的原因和解决方法。 问题原因 在 Oracle 11g R2 版本中,有一个优化功能,在建表时,不会分配存储空间,只有...

    Oracle 11G R2 用 exp 无法导出空表解决方法

    关于R2无法exp出空表的方法。考虑到节省空间,oracle11g r2不给空表分配segment,具体办法见附件。

    oracle11g对于空表用exp不能导出的解决办法

    oracle11g对于空表用exp不能导出的解决办法.txt

    解决oracle11g不能导出空表的问题

    文档有为什么oracle 11g不能导出空白,导出空表的详细操作方法(很简便哦)

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

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

    oracle11g-exp文件

    Oracle 11g是甲骨文公司发布的一款关系数据库管理系统,其强大而高效的数据处理能力在业界享有盛誉。在给定的“oracle11g-exp”文件中,重点涉及了Oracle数据库的数据导出和导入工具,即EXP(Export)和IMP(Import...

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

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

    Oracle导出空表解决办法

    ### Oracle导出空表解决办法 #### 背景与问题描述 在Oracle数据库管理过程中,经常遇到的一个问题是无法导出空表。这种情况通常发生在使用`expdp`或`exp`命令进行数据导出时,如果表为空,则可能会遇到无法导出的...

    oracle在导出dmp缺少的exp.exewenjain

    在Oracle环境中,"exp.exe"是Oracle Data Pump Export工具的一部分,用于将数据库对象(如表、索引、存储过程等)的数据和结构导出到一个或多个DMP(Data Pump Export)文件中。DMP文件是一种二进制格式,便于存储和...

    oracle11g的BIN目录exp.exe下载

    综上所述,Oracle 11g的BIN目录中的exp.exe是数据库管理的重要工具,通过它和其他相关工具的配合,可以实现高效的数据导出、导入,从而在数据迁移、备份恢复等场景中发挥关键作用。理解并掌握这些工具的使用,对于...

    如何用命令exp导出指定表的数据

    如何用命令exp导出指定表的数据

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

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

    oracle11g的imp exp

    Oracle 11g的IMP(Import)和EXP(Export)工具是数据库管理中不可或缺的部分,它们主要用于数据的导入导出,实现数据迁移、备份和恢复等操作。在Oracle数据库环境中,这些工具对于数据库管理员(DBA)进行日常维护...

Global site tag (gtag.js) - Google Analytics