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 无法导出空表,这是因为 11g R2 中有一个新特性,即当表无数据时,不分配 segment,以节省空间。这种情况下,使用 exp 命令无法导出空表。下面将介绍四种解决方法: 解决...
在使用Oracle11g数据库时,用户可能会遇到在使用exp导出工具导出数据时无法导出空表的问题。空表是指那些没有数据行的表,这在Oracle数据库中比较常见。Oracle11g为提高性能和节省空间,默认情况下对空表不分配...
通过以上步骤,你应该能够在Oracle 11g中成功地导出空表。在实际操作中,记得根据自己的具体环境调整参数,确保数据导出的准确性和完整性。对于大型数据库,推荐使用expdp,因为它更高效,且支持并行处理和更多高级...
总之,尽管Oracle11g默认不导出空表,但通过自定义脚本或使用“FULL”选项,我们可以轻松地将空表包含在导出过程中。在进行此类操作时,理解数据库结构、权限以及导出/导入过程的细节至关重要,以确保数据的完整性和...
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间。 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。 ...
在Oracle 11g数据库系统中,用户可能会遇到无法导出空表的问题,这主要与Oracle 11g引入的一个新特性有关,即deferred_segment_creation参数。这个参数默认为true,它的作用在于延迟段的创建。当这个参数启用时,...
Oracle 11g 导出空表、少表的解决方案 在 Oracle 11g 中,有一个新特性:当表无数据时,不分配 segment,以节省空间。这使得在通过 exp 导出时,无法导出没有分配 segment 的表。解决这个问题有两种情况: 情况一...
通过以上方法,你可以有效地处理Oracle 11G在数据导出和导入时遇到的空表问题。确保在进行数据迁移时考虑到这些差异,以避免不必要的错误和数据丢失。同时,理解数据库版本间的差异对于顺利进行数据库管理和维护至关...
本篇将详细介绍如何解决导出空表时遇到的挑战,特别是针对Oracle 11g R2版本中的一个特性——Deferred Segment Creation(延迟段创建)所带来的问题。 #### Deferred Segment Creation概述 Deferred Segment ...
- 在Oracle 11g中,EXP命令无法导出数据库中的空表,但可以通过EXPDP实现这一需求。 - Oracle 11g通过EXP导出的数据无法通过IMP导入到Oracle 10g中,但是可以通过EXPDP和IMPDP完成。 - IMPDP/EXPDP是服务器端命令...
然而,在11G R2 版本中,由于一个新特性,空表在没有数据的情况下不会分配 segment,导致无法通过 exp 导出。这个问题可以通过以下几种方法解决: 1. **插入并回滚数据**:向空表中插入一行数据,然后执行 rollback...
这一特性虽然有助于提高存储效率,但也带来了一些问题,比如在使用传统 `exp` 工具进行数据导出时,无法导出空表。 - **解决方法**:为了导出空表,可以采用以下几种方法之一: - 在空表中插入一行数据,然后回滚...
Oracle 11g引入了一个新特性,即当表为空时不分配segment以节省空间。这可能导致在尝试导出空表时出现问题,影响数据的实用性。 解决这个问题,可以通过设置`deferred_segment_creation`参数为`FALSE`: 1. 在SQL*...
在本案例中,这一操作成功解决了空指针异常问题。 - 这可能是因为Word 2010的格式与POI 3.9的兼容性更好。 2. **更新POI版本**: - 如果更改文档版本后仍然存在问题,可以考虑升级POI到更高版本。例如,可以尝试...
#### 一、Oracle 11G中的新特性:空表导出问题及其解决方案 在Oracle 11G R2版本中,为了节省存储空间,引入了一个新特性:当表中没有数据时,不会为该表分配segment(即存储空间)。这导致了一个问题——使用传统...
这个问题通常与 Oracle 11gR2 引入的一个新特性—— Deferred Segment Creation(延迟段创建)有关。这个特性旨在提升数据库对象创建的效率,它会延迟对那些在创建时没有数据、不需要立即分配 Segment 的对象的 ...
2. **Oracle 11gR2中无法使用EXP导出空表的问题**: - 在Oracle 11gR2中,如果尝试使用传统的EXP工具导出包含空表的数据库,空表可能不会被包含在导出文件中。这是由于EXP工具的设计限制,它主要关注于用户数据的...
- **说明**: 该参数用于禁用11g中的段延迟创建特性,以避免因该特性而引发的各种BUG,例如数据导入导出错误、表空间删除后仍存在于数据字典等问题。 3. **自动serial direct path read和用户验证延迟特性关闭** ...
Oracle 10g数据库是Oracle公司推出的一款关系型数据库管理系统,尤其适合大型企业级应用。本教程《Oracle 10g 数据库入门与实践》旨在帮助初学者掌握Oracle数据库的基本概念、操作和管理技巧,同时也为有经验的...