一、问题原因: 
    11G中有个新特性,当表无数据时,不分配segment,以节省空间

想要给空表也分配segmant,有以下两个办法:

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。 需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。 

View Code

二、解决方法:

1、先查询一下当前用户下的所有空表

select table_name from user_tables where NUM_ROWS=0; 

View Code

2、用以下这句查找空表

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 

View Code

把查询结果导出,执行导出的语句

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; 

View Code

3、然后再执行

exp 用户名/密码@数据库名 file=/home/oracle/exp.dmp log=/home/oracle/exp_smsrun.log   成功!

当然了也可以用以下方法:expdp和impdp

create directory expdp_dir as '/data/db';
grant read,write on directory expdp_dir to DRGN_OWNER;expdp DRGN_OWNER/DRGN_OWNER DIRECTORY=expdp_dir DUMPFILE=dbfile.dmp SCHEMAS=DRGN_OWNER logfile=DRGN_OWNERexpdp.logcreate directory impdp_dir as '/data/db';
grant read,write on directory impdp_dir to DRGN_OWNER;impdp DRGN_OWNER/DRGN_OWNER DIRECTORY=impdp_dir DUMPFILE=dbfile.dmp logfile=DRGN_OWNER.dmpimpdp.log

View Code

然已经导入了

对于DBA新建数据库,建议建立了空的数据库后,马上执行

alter system set deferred_segment_creation=flase sscope=spfile;
shutdowm immediate
startup 

View Code

【小结】

1、自己没有好好学习11g的新特性,导致了这个问题花费了2个小时的 
2、建议客户使用稳定的10.2.0.4,客户拒绝,现在11g已经是主流了,并不是每一个客户都很保守使用稳定版本,而非最新版本 
3、某美 和 某ELL 的项目以后少接触,4年前IBM P570双机Oracle10g的实施问题就折腾的无语。 
4、再次论证了很多甲方和厂商基本都是:事前猪一样,事后诸葛亮。和目前国内流行的砖家叫兽有异曲同工之妙。 
5、做技术果然是一条不归之路

转载于:https://www.cnblogs.com/fameg/p/9770487.html

处理Oracle 11g在用EXP导出时,空表不能导出相关推荐

  1. oracle导出dmp空表导不出来,如何解决Oracle11g使用dmp命令无法导出空表问题

    如何解决Oracle11g使用dmp命令无法导出空表问题 导出:exp  username/password@orcl file=路径 tables=(tb1)    //tables=(tb1)可有 ...

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

    Oracle 11G在用EXP 导出时,空表不能导出解决 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了 ...

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

        ORACLE 11G在用EXP导出时,发现空表(没有数据或者没有用过的表)不能导出了. 查了一下资料,说是Oracle 11G中有个新特性,当表无数据时,不分配segment,以节省空间,所以 ...

  4. ORACLE11g“空表”无法导出的深入分析

    我觉得将空表无法导出描述为没有使用过的表无法导出应该更确切一些.oralce11g为了节省存储空间,新建表的时候默认是不分配segment的.既然segment都没有,就不用谈exp了.但是oracl ...

  5. mysql空表不导出问题_解决Oracle 11g空表无法导出的问题

    Oracle 11g 新增参数deferred_segment_creation ,建库的时候默认值为true,意思是延时加载,当表中不存在数据的时候,不为这个表 Oracle 11g 新增参数def ...

  6. Oracle用imp和exp实现数据的导入和导出

    使用方法如下: Imp username/password@connect_string param=value - exp username/password@connect_string para ...

  7. oss导出数据为空时怎么处理_数据库导出时有空表导不出的解决方法

    oracle11g , 在用 exp 命令备份数据库时, 如果表中没有数据报 EXP-00011 错误, 对应的表不存在. 这导致对应的空表无法备份. 原因: 11g 默认创建一个表时不分配 segm ...

  8. Oracle 11g常用管理命令(用户、表空间、权限)

    PS:下面是Oracle 11g最常用的基本管理命令,包括创建用户.表空间,权限分配等.以下命令本人都验证操作过,并加上了本人的小结与说明. 1.启动oracle数据库: 从root切换到oracle ...

  9. oracle 索引 lob 迁移,Oracle 11g到19c迁移TB级lob表的酸爽

    从Oracle数据库官方服务支持生命周期表我们可以清晰看到Oracle11g已过主支持生命周期,2020年后不再支持,取而代之的是12C及以上版本. 基于这个背景,大部分的客户开始了新一轮的数据库升级 ...

最新文章

  1. QIIME 2教程. 24Python命令行模式Artifact API(2021.2)
  2. Openstack启用spice协议
  3. 玩转产品排期:让小伙伴们高效协作
  4. solaris 10 安装Apache Mysql PHP
  5. 几何学中关于相交圆的这个定理,你还记得吗?
  6. ctreectrl 设置选中_CTreeCtrl点击获得选中项
  7. CS20Chapter2
  8. [Vulfocus解题系列] 所复现漏洞总结
  9. php 红包算法教程,php仿微信红包分配算法的实现方法
  10. java 建立临时文件夹
  11. AES - Openssl AES 函数说明
  12. Android对话框Dialog深度剖析
  13. 别让房子升值迷惑,特别是公寓
  14. android 双屏壁纸,怎么让双屏显示壁纸不一样
  15. 《Storytelling With Data》读书心得1
  16. 基于微信小程序的家政服务预约系统(后台Java+SSM+MySQL)
  17. 无线充电 Qi认证流程详解
  18. 最短路径之迪克斯特拉(Dijkstra)算法
  19. java怎么把毫秒转换成天数_java – 如何将毫秒转换成小时和数天?
  20. 聊聊IM系统的即时性和可靠性

热门文章

  1. Android自动调整TextView的大小
  2. jpa 表注释和字段注释_JPA注释–Hibernate注释
  3. 对警报线程池的警报线程_使用警报控制器的iOS操作表
  4. Java进阶必备,人人都能听懂的JVM
  5. 在微服务中,Kubernetes软件组件有哪些?
  6. 新年新气象[xgluxv]
  7. 洛谷P2770 航空路线问题(费用流)
  8. Windows Server入门系列25 系统内置用户和组
  9. VMware、vSphere 6.0 介绍
  10. 华为视频会议系统常见问题及解决方法