oracle11g exp导出问题:部分表导不出来

在oracle导出表的命令exp时候发现一个问题,就是部分表完全的导不出来,经检查发现只要是表为空的都会导不出来。

在如下表中发现segment_created都为NO的是导不出来的,经查询后,将语句提取出来执行即可。

select ‘alter table ‘|| table_name ||‘ allocate extent;‘

from user_tables where segment_created=‘NO‘;

alter table table allocate extent;

备注:在11g中有一个特性就是参数deferred_segment_creation,默认是true的,表示段延迟创建。当创建一个新的表,并且该表还没有数据的情况

下,该表是不会分配extent的,所以说该表不占数据空间,此时没有分配segment,导致exp导不出来。因此,根据上述方法,查询user_tables表,如果segment_created为NO的,说明该表没有分配segment,查询出来执行下即可。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-04 07:35:33

oracle11g exp导出问题:部分表导不出来的相关文章

oracle EXP导出一张表时使用query参数指定where条件

oracle exp 导出一个表的部分内容,使用query参数可加上SQL的where条件进行过滤 注意:如果需要使用到日期字符串格式等单引号,需要使用双引号将where条件括起来,而且双引号要用\做转义 exp test/[email protected] file=D:\test_bak.dmp log=D:\exp0811.log tables=(tbl_test) query=\"where start_time>='20160701000000' and start_time&l

oracle exp 导出非常多的表且是表结构

需求是:要导出指定3千张表的结构,一般这样导就可以,但问题是表是非常多的,不会成功 exp user_name/[email protected]  rows=n tables=(tab1,tab2,tab3000) file=d:/data.dmp 用下列方法: exp parfile=d:\test.par test.par的内容为: userid=user_name/[email protected] file=d:\data.dmp tables=(tab1,tab2,tab3000)

Oracle11g使用exp导出空表

1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment. 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 查看:   SQL>show parameter deferred_segment_creation; 该值设置后

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

轻松解决oracle11g 空表不能exp导出的问题 [引用 2012-9-22 18:06:36]  字号:大 中 小 oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出.共两种解决方法,推荐使用第二种(最简单).一.修改数据库参数alter system set deferred_segment_creation=false; 修改后,也不会导出空表,只有新建的空表才会导出,不适用,只有新建数据库时,修改此参数才比较有用.二.sql语句1.先查询一下哪些表是空的

oracle11g导出表时会发现少表,空表导不出解决方案。

一:背景引入 oracle11g用exp命令导出数据库表时,有时会发现只导出了一部分表时而且不会报错,原因是有空表没有进行导出,之前一直没有找到方法于是用最笨的方法重新建这些空表,当然在我们实际当中表的数量大时我们该怎么办??? oracle10g版本中没有这样的问题. 于是查资料发现oracle11g有个新特性,增加了一个新特性 "deferred_segment_creation" 含义是段延迟创建,默认是true. 具体是什么意思呢?我们来解释下: 如果这个参数设置为true,你

Oracle11g新特性导致空表不能导出问题

    ORACLE 11G在用EXP导出时,发现空表(没有数据或者没有用过的表)不能导出了. 查了一下资料,说是Oracle 11G中有个新特性,当表无数据时,不分配segment,以节省空间,所以这些表也没能导出来.用下面的SQL查询,发现不能导出的表, segment_created 字段值都是 'NO'. Select segment_created,table_name from user_tables where segment_created = 'NO'; 解决的办法: 设置de

exp导出数据时丢表

友军发来消息,说使用exp导出某个schema的数据的时候,发现有些表没有导出来.因为一直没有使用exp的习惯,就使用exp\expdp再次导出一次,分析二者的日志,发现exp的确有些表没有导出. 问题产生的原因:在11gR2之前,oracle实在表被创建时就分配空间:从11gR2(11.2.0.1)中引入了一个新特性:deferred segment creation.11gR2之后,参数deferred_segment_creation默认是true,表示表中插入第一条数据才会分配磁盘空间.

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

转自:http://wanwentao.blog.51cto.com/2406488/545154 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME         

EXP/IMP 导出生产库表的指定数据到测试库一例

一般来讲,EXP/IMP是上一代导出导入程序,EXPDP/IMPDP是新一代的导出导入程序.对于大数据量的导出导入首选EXPDP/IMPDP,可以用到并行度,对表空间等操作上也更加的灵活.对于小数据量的迁移,可以使用exp/imp,操作更简单. 需求: exp 导出  A库(11.2.0.3)zjy用户的分区表t_jingyu_part部分数据,数据表空间 dbs_d_jingyu,索引表空间dbs_i_jingyu. imp 导入  B库(11.2.0.4)test用户下,test用户的默认表