处理Oracle 11g在用EXP导出时,空表不能导出
一、问题原因:
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。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
二、解决方法:
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 成功!
当然了也可以用以下方法: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.log create 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
然已经导入了
对于DBA新建数据库,建议建立了空的数据库后,马上执行
alter system set deferred_segment_creation=flase sscope=spfile;
shutdowm immediate
startup
【小结】
1、自己没有好好学习11g的新特性,导致了这个问题花费了2个小时的
2、建议客户使用稳定的10.2.0.4,客户拒绝,现在11g已经是主流了,并不是每一个客户都很保守使用稳定版本,而非最新版本
3、某美 和 某ELL 的项目以后少接触,4年前IBM P570双机Oracle10g的实施问题就折腾的无语。
4、再次论证了很多甲方和厂商基本都是:事前猪一样,事后诸葛亮。和目前国内流行的砖家叫兽有异曲同工之妙。
5、做技术果然是一条不归之路
处理Oracle 11g在用EXP导出时,空表不能导出的更多相关文章
- Oracle 11g 导库导不出空表问题
Oracle11g 会遇到这样的问题,用exp整库导出的时候,会遇到这样的问题,库里的空表没办法导出 select * from all_all_tables aa where aa.owner='U ...
- Oracle 11G在用EXP 导出时,空表不能导出解决
Oracle 11G在用EXP 导出时,空表不能导出解决 (转)(.http://wanwentao.blog.51cto.com/2406488/545154 11G中有个新特性,当表无数据时,不分 ...
- 解决Oracle 11g在用EXP导出时,空表不能导出
实践结论可行,看"2.解决办法" 一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 1.insert一行,再rollback就产生 ...
- 【转】解决Oracle 11g在用EXP导出时,空表不能导出
一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 .insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segme ...
- Oracle 11g 在备份导出时缺少表的问题
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产 ...
- oracle 11g 空表也导出
查询空表 并导出修改空表语句 select 'alter table '||table_name||' allocate extent;' from user_tables where num_row ...
- Oracle11g新特性导致空表不能导出问题
ORACLE 11G在用EXP导出时,发现空表(没有数据或者没有用过的表)不能导出了. 查了一下资料,说是Oracle 11G中有个新特性,当表无数据时,不分配segment,以节省空 ...
- Oracle 11G在用EXP 导入、导出时,若有空表对导入导出中遇到的问题的解决
11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segmen ...
- Oracle 11G R2在用EXP 导出时,空表不能导出解决办法
11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segmen ...
随机推荐
- js-数组和字符串转化
一.数组=>字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var arr, str;arr = new Array(0,1,2,3,4);str = arr.join(" ...
- BZOJ 3262 陌上花开 (三维偏序CDQ+树状数组)
题目大意: 题面传送门 三维偏序裸题 首先,把三元组关于$a_{i}$排序 然后开始$CDQ$分治,回溯后按$b_{i}$排序 现在要处理左侧对右侧的影响了,显然现在左侧三元组的$a_{i}$都小于等 ...
- Layui Excle/csv数据导出
官方文档的数据是这样的 依赖 Layui 2.4版本以上 layui.use([ 'table'], function(){ var table=layui.table; table.exportFi ...
- Android开发进度05
1,今日:目标:完成后台用户的增删改查 2,昨天:完成登录和注册功能 3,收获:熟练了SQLite操作 4,问题:无
- Redis字符串(STRING)中BIT相关命令
上篇文章我们对STRING数据类型中一些基本的命令进行了介绍,但是没有涉及到BIT相关的命令,本文我们就来看看几个和BIT相关的命令. 本文是Redis系列的第四篇文章,了解前面的文章有助于更好的理解 ...
- SQL的运算符优先级
注: 1.乘除的优先级高于加减: 2.同一优先级运算符从左向右执行: 3.括号内的运算先执行.
- Having用法
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似.WHERE 搜索条件在进行分组操作之前应用:而 HAVING 搜索条件在进行分组操作之后应用 ...
- LaTeX 图片色偏解决方法
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50327113 在LaTeX的编辑模式中 ...
- 使用ViewPager实现广告滑动效果
效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSk1DNjAx/font/5a6L5L2T/fontsize/400/ ...
- Redis-1-安装
Redis-1-安装 标签(空格分隔): linux,redis 下载 cd /usr/local/src/ wget http://download.redis.io/releases/redis- ...