解决Oracle 11g在用EXP导出时,空表不能导出
一、问题原因:
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。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
二、解决方法:
1、先查询一下当前用户下的所有空表
select table_name from user_tables where NUM_ROWS=0;
2、用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
把查询结果导出,执行导出的语句
'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;
3、然后再执行
exp 用户名/密码@数据库名 file=/home/oracle/exp.dmp log=/home/oracle/exp_smsrun.log 成功!
转载于:https://www.cnblogs.com/zwl715/p/3829940.html
解决Oracle 11g在用EXP导出时,空表不能导出相关推荐
- oracle导出dmp空表导不出来,如何解决Oracle11g使用dmp命令无法导出空表问题
如何解决Oracle11g使用dmp命令无法导出空表问题 导出:exp username/password@orcl file=路径 tables=(tb1) //tables=(tb1)可有 ...
- Oracle 11G在用EXP 导出时,空表不能导出解决
Oracle 11G在用EXP 导出时,空表不能导出解决 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了 ...
- Oracle11g新特性导致空表不能导出问题
ORACLE 11G在用EXP导出时,发现空表(没有数据或者没有用过的表)不能导出了. 查了一下资料,说是Oracle 11G中有个新特性,当表无数据时,不分配segment,以节省空间,所以 ...
- ORACLE11g“空表”无法导出的深入分析
我觉得将空表无法导出描述为没有使用过的表无法导出应该更确切一些.oralce11g为了节省存储空间,新建表的时候默认是不分配segment的.既然segment都没有,就不用谈exp了.但是oracl ...
- 处理Oracle 11g在用EXP导出时,空表不能导出
一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 想要给空表也分配segmant,有以下两个办法: 1.insert一行,再rollback就产生segme ...
- mysql空表不导出问题_解决Oracle 11g空表无法导出的问题
Oracle 11g 新增参数deferred_segment_creation ,建库的时候默认值为true,意思是延时加载,当表中不存在数据的时候,不为这个表 Oracle 11g 新增参数def ...
- oss导出数据为空时怎么处理_数据库导出时有空表导不出的解决方法
oracle11g , 在用 exp 命令备份数据库时, 如果表中没有数据报 EXP-00011 错误, 对应的表不存在. 这导致对应的空表无法备份. 原因: 11g 默认创建一个表时不分配 segm ...
- Oracle用imp和exp实现数据的导入和导出
使用方法如下: Imp username/password@connect_string param=value - exp username/password@connect_string para ...
- 解决Oracle 11g企业管理器无法打开
今天安装完Oracle 11g,想打开企业管理器发现无法打开. 百度了一下,原因是按着网上教程安装完之后,只保留了一个Oracle的主服务和一个监听服务,其他服务都关了,只要把OracleDBCons ...
- Oracle 11g常用管理命令(用户、表空间、权限)
PS:下面是Oracle 11g最常用的基本管理命令,包括创建用户.表空间,权限分配等.以下命令本人都验证操作过,并加上了本人的小结与说明. 1.启动oracle数据库: 从root切换到oracle ...
最新文章
- 用vc++如何得到汉字的Unicode编码?
- 求一段内存中的字节型数据的和
- leetcode-11-盛最多水的容器
- [Unity] Animator 播放 Mixamo 动画卡在第一帧的解决办法:勾选 Loop Time
- 余承东:华为P40或是鸿蒙系统首款手机,新机明年3月发布
- [one day one question] GIF动画为什么只动一次不能循环
- linux目录表及功能n鸟哥,鸟哥linux学习之-文件属性跟系统目录
- 风投的钱都从哪里来?
- 如何才能通过一线互联网公司面试?全网疯传
- 脚本学习python和linux-shell和jQuery(javascript)
- java调用tuxedo中间件,BEA-TUXEDO中间件介绍.ppt
- 机器学习之SVM调参实例
- UVA 10369 - Arctic NetWork (求最小生成树)
- navicat如何创建数据库及如何导入数据库文件【初学者适用】
- 蓝牙技术|蓝牙Mesh照明技术照亮世界
- 掌握这几点 让你快速写出优质电影解说文案!
- 你的声音价值百万,教你六个利用声音赚钱的方法
- Jieyue捷阅网购物商城项目介绍说明
- Ubuntu16.04+CUDA8.0+GTX960M安装
- Java网络编程以及简单的聊天程序