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 MATERIALS allocate extent;
alter table MEDIASERVERCONFIG allocate extent;
alter table MESSAGEHIDE allocate extent;
alter table NOTANDUMS allocate extent;
alter table NOTESERVERTIME allocate extent;
alter table ORGANIZEEXAM_DEGREE allocate extent;
alter table ORGANIZEEXAM_DEPARTMENT allocate extent;
alter table ORGANIZEEXAM_POST allocate extent;
alter table ORGANIZEEXAM_POSTGRADE allocate extent;
alter table ORGANIZEEXAM_REGION allocate extent;
alter table PLANS allocate extent;

'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table POSTDATE allocate extent;
alter table POSTIMG allocate extent;
alter table POSTTITLE allocate extent;
alter table POSTTITLECATE allocate extent;
alter table POSTTITLEGRADE allocate extent;
alter table POSTTITLESUSERS allocate extent;
alter table PREPARATION_LIST allocate extent;
alter table PUBLIC_DEP allocate extent;
alter table PUBLIC_USERGROUP allocate extent;
alter table REPLY allocate extent;
alter table REPORTPARAMETER allocate extent;

'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table RESASSIGN_USERGROUP allocate extent;
alter table RESULTMAP allocate extent;
alter table SC_USCP allocate extent;
alter table STUDYTEST allocate extent;
alter table SUBCOURSEWARE allocate extent;
alter table SUBJECTINFO allocate extent;
alter table SUBJECTINFOCATE allocate extent;
alter table SYSTEMFAQMANAGES allocate extent;
alter table TEMPLETOFIMPORTS allocate extent;
alter table TESTRESULT allocate extent;
alter table TEST_CONN allocate extent;
将上面的执行结果(所有的alter语句)在要导出的数据库中执行一下,然后在执行导出语句,这样的话空表就会导出了;
exp username/passwd@SID file=/opt/exp.dmp log=/opt/exp.log
导出成功!
导入方法,加buffer(缓冲)以加速导入进度:
imp username/passwd@SID file=/opt/exp.dmp log=/opt/exp.log buffer=2048000 full=y

参考文章:

http://wanwentao.blog.51cto.com/2406488/545154/

最新文章

  1. storm启动过程之源码分析
  2. centos 开启VNC
  3. [知识点]状态压缩DP
  4. Android API中常用的包(转)
  5. iOS开发零碎笔记
  6. Ubuntu 14.10 下sort,uniq,cut,wc命令详解
  7. asp.net 时间比较,常用于在某段时间进行操作
  8. 多项式逼近remes算法
  9. java 抓取百度根据关键词搜索域名
  10. Category、Extension
  11. jqmobile
  12. java常量和变量的定义规则,变长参数的使用
  13. Docker了解
  14. 使用Sublime Text 3进行Markdown编辑+实时预览
  15. CentOS系统安全加固常见方法
  16. shardingsphere多数据源(springboot + mybatis+shardingsphere+druid)
  17. 如何查询linux下BIOS信息
  18. mysql系列四、mySQL四舍五入函数用法总结
  19. ORACLE安装入门篇OEL5.4安装ORACLE11g
  20. pts/0代表什么意思?

热门文章

  1. 红茶一杯话Binder (传输机制篇_下)
  2. 使用httpClient发送get\post请求
  3. Android项目使用Dagger2进行依赖注入
  4. WebLogic配置自己定义密钥库和SSL的操作手冊
  5. file、inode在应用层和驱动层之间的联系_转
  6. map--C++ STL 学习
  7. X264码率控制总结
  8. Servlet 打包部署
  9. 用Flex实现常见的几种布局
  10. 在MathType中输入罗马数字的方法