`

oracle11G R2空表无法导出

 
阅读更多
 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

  成功!
分享到:
评论

相关推荐

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

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

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

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

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

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

    oracle_11g_R2_client win32 客户端

    Oracle 11g R2 Client是Oracle公司推出的一款用于连接到Oracle数据库服务器的客户端软件,主要服务于Windows 32位操作系统。这个版本的客户端提供了多种工具和技术,使得开发者和DBA(数据库管理员)能够方便地管理...

    Oracle11gR2官网下载地址

    为了进一步提升性能,Oracle 11g R2 改进了查询优化器,并增强了对分区表的支持。这使得查询执行更加高效,特别是在处理大量数据时表现更为出色。 ##### 4. **简化管理** Oracle 11g R2 推出了许多新工具和技术来...

    oracle11g R2 64位

    根据提供的文件信息,我们可以深入探讨Oracle 11g R2 64位版本的相关知识点,包括其主要特性、安装配置、以及在企业级应用中的优势等。 ### Oracle 11g R2 64位概述 Oracle 11g Release 2 (11.2) 是Oracle公司推出...

    Oracle11g R2 64位(最新).txt

    Oracle 11g R2 增强了数据泵工具的功能,使其能够更高效地进行数据导入导出操作。这对于大型数据迁移项目来说尤为重要。 ### 四、安装与配置 在安装Oracle 11g R2 64位版之前,需要确保服务器满足最低硬件和软件...

    oracle11g导出还原到oracle10g

    ### Oracle 11g 数据库导出还原到 Oracle 10g 的步骤详解 #### 一、导出Oracle 11g数据至DMP文件 在进行Oracle版本之间的迁移时,通常会采用导出(Export)的方式将源数据库的数据转换为可移植的格式,再通过导入...

    Oracle 11g R2 RMAN -- Howto

    Oracle 11g R2 RMAN(Recovery Manager,恢复管理器)是Oracle公司为其数据库产品开发的一个功能强大的备份和恢复解决方案。它通过自动化备份、恢复以及数据传输等任务,从而简化数据库管理员(DBA)的工作。RMAN在...

    Linux 下 装 Oracle 10g R2 _3(包含作者电话,不会可教)

    ### Linux下安装Oracle 10g R2 的详细步骤与注意事项 #### 一、环境准备与依赖包安装 本文档将详细介绍如何在Linux RHEL 5环境下安装Oracle 10g R2 数据库。该过程涉及到一系列依赖包的安装及环境配置。 ##### ...

    docker-wnameless-oracle-xe-11g百度盘地址.zip

    docker oracle的离线镜像docker-wnameless-oracle-xe-11g.tar,可以导入到内网(无互联网)环境使用,该包是基于wnameless的Oracle打包的,由于网速慢,我是使用 git clone ...

    Oracle 10g R2 Concepts双语版

    Oracle 10g R2 Concepts 是一份非常重要的文档,它深入介绍了Oracle数据库10g Release 2的核心概念和技术。这份双语版的资料对于学习和理解Oracle数据库系统的基础架构、功能特性和操作流程有着极大的帮助,无论是...

    从Oracle 11g R2 RAC中删除管理员管理的某个节点的详细教程

    ### 从Oracle 11g R2 RAC中删除管理员管理的某个节点的详细教程 #### 实验背景与目的 本教程旨在详细说明如何在Oracle 11g R2 RAC环境中安全有效地移除管理员管理的数据库实例所处的一个节点。这种操作通常发生在...

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

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

    Linux下Oracle_11G_r2_(64位)安装教程

    在Linux环境下安装Oracle 11g R2 (64位)数据库是一项技术性强且需要精确操作的任务。首先,我们需要确保服务器的硬件配置满足最低要求。在这个例子中,使用的服务器是IBM X3550M2,配备了两颗Intel Xeon E5504 2.00...

    oracle11g创建临时表空间组

    在Oracle 11g R2版本中,引入了临时表空间组的概念,这一特性为数据库管理提供了更大的灵活性。与传统的单个临时表空间相比,临时表空间组允许多个临时表空间协同工作,从而提高并发性能和资源利用率。下面将详细...

    oracle11gR2的数据导入到oracle10gR2

    在Oracle 11g R2中,exp已经更新为expdp(Data Pump Export),它提供了更快的导出速度和更高级的选项,例如并行导出、表空间过滤以及导出元数据等。 2. **imp工具**:Import工具则用于将exp创建的转储文件中的数据...

    利用Oracle 10G R2保护HIS系统的敏感数据.pdf

    Oracle 10G R2针对这一问题,提供了表列数据加密方法,增强了数据的安全性。 【Oracle数据库表列加密方法】 1. **数据包加密**:Oracle允许在网络传输数据时进行加密,防止数据在传输过程中被截获。这可以通过设置...

    虚拟机windows2008+oracle11g dataguard

    【虚拟机Windows2008+Oracle11g DataGuard部署详解】 在IT环境中,数据库高可用性是关键,Oracle的DataGuard技术提供了一种高效且可靠的灾难恢复和业务连续性解决方案。本教程将详细讲解如何在Windows Server 2008...

Global site tag (gtag.js) - Google Analytics