用exp无法导出空表解决方法

最早的一次使用oracle 11g导出数据发现有的表丢失了,感觉莫名其妙的,后来终于找到原因了。 找到问题以后,再看看解决方案。
11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了。本以为EXP能有相应的控制开关,可以切换是否导出空表,看了下帮助,没有太大的改变。有些奇怪,难道11GR2不更新EXP的功能了,还看有的帖子说11GR1作为客户端去卸载11GR2的,都会出现ora-1455d的错误,得换成11GR2的exp才没事了,心中感慨阿,怎么版本间的兼容这么脆弱了!

  解决方法:

一、 insert一行,再rollback就产生segment了。

  该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。

二、 设置deferred_segment_creation参数

该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。修改SQL语句:

alter system set deferred_segment_creation=false scope=both;

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

三、 用以下这句查找空表并分配空间

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

  把SQL查询的结果导出,然后执行导出的语句,强行为表分配空间修改segment值,然后再导出即可导出空表了。

转 一个oracle11g 使用exp导出空表丢失的问题分析及解决办法的更多相关文章

  1. Oracle11g使用exp导出空表

    1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是 ...

  2. Oracle11g的exp导出空表提示EXP-00011: 不存在

    刚lg问我11g无法导出空表,实验了下,果真如此. 原因:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间. 对于已经存在的空表解决办法: 就 ...

  3. Oracle11g中Exp命令空表不能导出的问题

    http://www.jb51.net/article/43894.htm 一.不能导出空表的原因 1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空 ...

  4. ORACLE 11G EXP导出空表方法

    EXP在导出11G的库的时候,与过去10G,9I的版本有很大的差别. 就是没有数据的表是不会分配空间的. 从Oracle 11.2.0.1版本开始,Oracle又提供了一种新的空间分配方法: Crea ...

  5. Oracle 导出空表的新方法(彻底解决)

    背景 使用Exp命令在oracle 11g 以后不导出空表(rowcount=0),是最近在工作中遇到一个很坑的问题,甚至已经被坑了不止一次,所以这次痛定思痛,准备把这个问题彻底解决.之所以叫新方法, ...

  6. oracle 11g用exp无法导出空表的解决方案

    racle 11g中有个新特性,当表无数据时,不分配segment,以节省空间,当我们用exp导出空表时,无法导出. 解决方法是两个方面, 一是处理现有的空表,让其能导出: 二是设置参数,让后续的新的 ...

  7. Oracle11g在使用exp导出时不导出空表问题的解决办法

    11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segmen ...

  8. Oracle11G R2用exp无法导出空表解决方法

    在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再roll ...

  9. Oracle备份恢复之Oracle11G R2用exp无法导出空表解决方法

    在11G R2中有个新特性,当表无数据时,不分配segment,以节省空间Oracle当然在执行export导出时,空表则无法导出,但是还是有解决办法的: 解决方法: 一.insert一行,再roll ...

随机推荐

  1. 基于java代码的springmvc配置

    在我的印象中,开发一个web项目首选当然是springmvc,而配置springmvc无非就是web.xml里配置其核心控制器DispatcherServlet.然后把所有的请求都交给它处理,再配个视 ...

  2. 关于Grid Layout

    .wrapper {     display: grid;/*产生一个块级的网格*/     grid-template-columns: repeat(3, 1fr);/*利用空格分隔的值定义网格的 ...

  3. L360 Most People Spend Their Time in Just 25 Places

    Some people are always out on the town, going to concerts, restaurant openings, you name it. They're ...

  4. 2018-No.7-SicnuCtf

    5月份的比赛现在才有时间在博客贴出来,这是我第二次出题了,第一次是上届的初赛,这次是决赛的题. 签到(base_or_base) 解压得到两个文件小明.zip和......txt,根据文件名提示猜测是 ...

  5. int 和 Integer

    现状1+1=?,不加思索2.有一个数字要存储在程序里,不加思索int.那为什么java要弄一个Integer类型出来?有什么用?怎么用?差别在哪儿?度娘说java提供了两种数据类型,一种是值类型,一种 ...

  6. Integer与String的知试点(java中常见面试题)

    1.==符号使用 Integer a = 1000,b=1000; Integer c = 100,d=100; System.out.println(a==b); System.out.printl ...

  7. Beta冲刺第二周王者荣耀交流协会第六次会议

    1.立会照片 成员:王超,高远博,冉华,王磊,王玉玲,任思佳,袁玥全部到齐. master:任思佳 2.时间跨度: 2017年11月22日 12:00 — 12:20,总计20分钟. 3.地点: 一食 ...

  8. spark学习笔记_1

    简单的讲,Apache Spark是一个快速且通用的集群计算系统. Apache Spark 历史: 2009年由加州伯克利大学的AMP实验室开发,并在2010年开源,13年时成长为Apache旗下大 ...

  9. SpringBoot实现跨域

    一.什么是跨域请求? 跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服务地址不一样.说白了就是ip.网络协议.端口都一样的时候,就是同一个域,否则就是跨域.这是由 ...

  10. 常用且难记的一些css

    1.多行文字超出隐藏,自动追加 ... 移动端兼容更好,pc下只能兼容 Safari.Opera 以及 Chrome 等部分浏览器,挺常用. (注:为什么要同时加这几个css不在这里详细叙述,详见) ...