Oracle 11G无法导出空表的解决办法】的更多相关文章

11G中有个新特性,当表无数据时,不分配segment,以节省空间解决方法:1.insert一行,再rollback就产生segment了.该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表.2.设置deferred_segment_creation 参数show parameter deferred_segment_creation NAME TYPE VALUE ------------------------------------ ----------- ---…
在oracle 11g r2中,发现传统的exp居然不能导出空的表,然后查询一下,  发现需要如下的步骤去搞,笔记之.    oracle 11g 新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true.具体是什么意思呢?    如果这个参数设置为true,你新建了一个表T1,并且没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间.这样可以节省少量的空间.    解决办法    1 设置d…
原文地址:11g不能导出空表的多种解决方法">oracle 11g不能导出空表的多种解决方法作者:Anlin_Yang ORACLE 11g 用exp命令导出库文件备份时,发现只能导出来一部分表而且不提示错误,之前找不到解决方案只能把没导出来的表重新建建立.后来发现是所有的空表都没有导出来.于是想好好查查,因为在以前的10g版本中没有这样的问题. 查资料发现Oracle 11g中有个新特性:新增了一个参数"deferred_segment_creation"含义是段延迟…
--解决 Oracle 11g 不能导出空表的问题 --执行下面语句,查询数据库中的空表,同时产生分配空间.把生成的结果复制出来并执行. select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 --如果以上方法不行,可改用下面方法 select 'alter table '||table_name||' allocate extent(size 64k);' from tab…
EXP在导出11G的库的时候,与过去10G,9I的版本有很大的差别. 就是没有数据的表是不会分配空间的. 从Oracle 11.2.0.1版本开始,Oracle又提供了一种新的空间分配方法: Create一个非分区表时,这个Table Segment并没有立刻创建, 而是直到有第一行记录插入的时候才去创建这个Segment,这和我们以前的Segment的创建和空间分配方法是不一样.这样的段也被称为延迟段. Deferred segment 的优点: (1)降低空间的开销:当一次创建成百上千个表时…
1.先进行表分析(一定要执行此步,否则查询空表可能不准确) select 'analyze table '||table_name||' compute statistics;' from user_tables; 2.再查询哪些表是空的(此步可以省略,直接进行第三步) select table_name from user_tables where NUM_ROWS=0 order by table_name; 3.最后生成alert语句select 'alter table '||table…
oracle exp 无法导出空表   select 'alter table '|| a.table_name ||' allocate extent;' from user_tables a where a.table_name not in (select segment_name from user_segments where segment_type = 'TABLE'); 执行查出的sql语句,再导出dmp,就能导出空表了. Oracle 11g无法导出空表的处理方法 在SQL窗口…
sql>alter system set deferred_segment_creation=false; sql>show parameter deferred_segment_creation; 记得重启数据库 以上只对执行修改以后创建的表起作用. 修改以前的空表并导出 查询空表 select table_name from user_tables where NUM_ROWS=0; 查询需要修改的空表语句 select 'alter table '||table_name||' allo…
1. 之前因为oracle11.2.0.1 的bug(deferred_segment_creation) 引起无法将空表导出. 有时给同事解释上半个小时他们也不知道 如何处理 或者是 他们不会用expdp 也不想用 allocate extent 的方式来搞. 没办法 只能通过 备份空表进行导入的方式进行处理. 2. 第一个想到的办法是 通过 exp tables=(select table_name from user_tables) 的方式来处理 发现有问题 提示不支持where子句 (坑…
expdp导出:(打开CMD) 先创建(任意盘符):\oracle_data 文件夹 1.sqlplus / as sysdba;2.create or replace directory d_name as 'd:\oracle_data(创建的文件夹)';3.select * from dba_directories;4.grant read,write on directory d_name to 数据库用户名;重新打开一个cmd窗口expdp 数据库用户名/数据库密码@orcl dire…
--设置系统参数 alter system set deferred_segment_creation=false; Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;…
  已确保安装的ORACLE_BASE目录是属于grid:oinstall 但安装时总是报:OUI-10182 The effective user ID does not match the owner of the file .......... --------------------------------------------------- 解决方法:用root帐户在/etc下建立文件oraInst.loc,并写入以下内容: inventory_loc=/u01/app/oraInv…
刚lg问我11g无法导出空表,实验了下,果真如此. 原因:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间. 对于已经存在的空表解决办法: 就是想办法让空表有segment,第一种:可以通过插入数据的方式(不想要这些数据可以回滚),只要有insert动作就会分配segment: 第二种:就是强制分配:alter table tablename allocate extent; 为了后面创建的表能直接分配segment:修改参数 defer…
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2)设置deferred_segment_creation参数 SQL> show parameter deferred_segment_creation NAME TYPE VALUE ------------------------------------…
一.问题原因:     11G中有个新特性,当表无数据时,不分配segment,以节省空间     1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALU…
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2)设置deferred_segment_creation参数 SQL> show parameter deferred_segment_creation NAME TYPE VALUE ------------------------------------…
在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 二.设置deferred_segment_creation参数 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.修改SQL语句: alter sy…
Oracle 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 alter system set deferred_segment_creation=false; 该参数值默认是TRUE,当改为FALSE时,无论…
背景 使用Exp命令在oracle 11g 以后不导出空表(rowcount=0),是最近在工作中遇到一个很坑的问题,甚至已经被坑了不止一次,所以这次痛定思痛,准备把这个问题彻底解决.之所以叫新方法,那一定有老方法了,这个方法是一位博友很早就提出了,以下是原文,其实也说明了问题的原因 Oracle11g使用exp导出空表(作者:程序员的那些) 问题根本原因:“Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出” 问题次要原因: 在开发维护期…
Oracle 11gR2 用exp无法导出空表解决方法 在11gR2中有个新特性,当表无数据时,不分配segment以节省空间.Oracle 当然在运行export导出时,空表则无法导出,可是还是有解决的方法的: 解决方法: 一.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment. 导出时则可导出空表. 二.设置deferred_segment_creation參数 该參数值默认是TRUE,当改为FALSE时,无无是空表还是非空…
racle 11g中有个新特性,当表无数据时,不分配segment,以节省空间,当我们用exp导出空表时,无法导出. 解决方法是两个方面, 一是处理现有的空表,让其能导出: 二是设置参数,让后续的新的空表也可以导出. 步骤如下: 1>查询所有空表并分配segment,使用以下语句查询生成修改空表设置的 select  'alter table  '||table_name||'  allocate extent;' from user_tables where num_rows=0; 2>将步…
正常情况下,oracle11g的 exp命令无法导出空表,弥补这个缺陷的方法是 在空表创建之前,更改系统设置: show parameter deferred_segment_creation 查看,结果是 SQL> show parameter deferred_segment_creation NAME                                 TYPE        VALUE------------------------------------ ---------…
11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALUE --------…
在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 二.设置deferred_segment_creation参数 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.修改SQL语句: alter sy…
用exp无法导出空表解决方法 最早的一次使用oracle 11g导出数据发现有的表丢失了,感觉莫名其妙的,后来终于找到原因了. 找到问题以后,再看看解决方案.11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了.本以为EXP能有相应的控制开关,可以切换是否导出空表,看了下帮助,没有太大的改变.有些奇怪,难道11GR2不更新EXP的功能了,还看有的帖子说11GR1作为客户端去卸载11GR2…
原文链接:http://www.cnblogs.com/Mr_JinRui/archive/2012/11/05/2755035.html 早的一次使用oracle 11g导出数据发现有的表丢失了,感觉莫名其妙的,后来终于找到原因了. 找到问题以后,再看看解决方案. 11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了.本以为EXP能有相应的控制开关,可以切换是否导出空表,看了下帮助,没…
11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALUE --------…
Oracle 11G在用export导出时,空表不能导出,11G R2中有个新特性,当表无数据时,不分配segment,以节省空间. 那么我们应该如何导出空表: 利用如下语句生成alter语句,未每个空表分配segment select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 粘贴运行结果sql直接运行: 然后直接使用plsql导出数据表即可.…
今天做数据迁移,但是发现有些空表无法exp,后来找到问题所在. [原文]:http://www.cnblogs.com/wenlong/p/3684230.html 11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了.本以为EXP能有相应的控制开关,可以切换是否导出空表,看了下帮助,没有太大的改变.有些奇怪,难道11GR2不更新EXP的功能了,还看有的帖子说11GR1作为客户端去卸载1…
如何解决Oracle11g使用dmp命令无法导出空表问题 导出:exp  username/password@orcl file=路径 tables=(tb1)    //tables=(tb1)可有可无,方便导出指定表 导入:imp username/password@orcl file=路径 tables=(tb1)  full=y 在用plsql导出dmp的时候,没有数据的表显示没有导出成功 解决 1执行 alter system set deferred_segment_creation…