转自:http://www.360doc.com/content/11/0810/11/7472437_139335252.shtml
在导出数据的过程中发现一个问题。数据库服务器环境为Windows2003+Oracle11gR2,具体现象如下:
执行EXP导出时,部分表提示 EXP-00011:表不存在错误,但是查询user_all_tables视图,此表确实是存在的,并且执行select语句也能成功,不过表为空表, 查看权限等也没有问题。后来通过查询资料,发现问题是由Deferred Segment Creation参数引起的。
Deferred Segment Creation,延迟段创建,Oracle11gR2新增参数, 具体用处是当新创建一个可能会有Segment的对象时,如果这个对象中还没有任何记录需要消耗一个Extent,那么将不会在创建对象时自动创建 Segment,这样做的好处是在创建对象时大大提高了速度。但是这么一来,因为对象没有Segment,执行EXP导出时,就会报EXP-00011错 误。
以报错的表cf_template为例,执行以下查询:
SQL> show parameter DEFERRED_SEGMENT_CREATION
NAME TYPE VALUE
------------------------------------ -------------------- --------------------
deferred_segment_creation boolean TRUE
发现Deferred Segment Creation已经打开,再执行:
SQL> select segment_name from user_segments where segment_name='CF_TEMPLATE';
no rows selected
没有返回值,数据库确实没有给CF_TEMPLATE表创建Segment,这就验证了为什么报错的都是空表。
解决方法如下:
1. 设置deferred_segment_creation的值为false
alter system set deferred_segment_creation=false;
此方法只对以后的表有效,之前的表没有Segment的还是没有。
2. 创建表的时候声明立即创建Segment
create table XXX (XXX XXX) SEGMENT CREATION IMMEDIATE;
3.对于已经创建但是还没有Segment的表来说,可以执行alter table XXX allocate extent来使其创建出 Segment,当然也可以插入一条数据,使其创建Segment
相关推荐
主要介绍了oracle11gR2使用exp导出命令时报EXP-00011错误的解决方法,大家参考使用吧
oracle 11g R2 新增的特性,exp无法导出空表,可以通过expdp命令导出,具体在附件里。
oracle数据导出身份证明-用户名和口令-错误的解决方法
Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法
在Linux上安装oracle数据库,... 在oracle linux 6_64bit上,提供了oracle-rdbms-server-11gR2-preinstall包,可以自动化的将需要安装的rpm包,需要调整的内核参数自动化的处理,对DBA安装数据库确实节省了不少的时间。
Oracle 11gR2 RAC + ASM on AIX-6.1安装指导手册
rhel 6中搭建oracle 11gr2 rac环境。
Oracle11gR2官网下载地址,Oracle11gR2
ORACLE9i exp遇见EXP-00008 ORA-00942 EXP-00024错误的解决方法,详细描述了问题处理的过程和步骤,共享在此,希望能有所帮助
Oracle11g使用exp导出空表,解决备份无法导出空表的问题
oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出。此资源提供将空表导出的的两种方法。
Oracle11gR2 (p10404530_112030_Linux-x86-64_7of7.zip) Oracle11gR2 (p10404530_112030_Linux-x86-64_6of7.zip) Oracle11gR2 (p10404530_112030_Linux-x86-64_5of7.zip) Oracle11gR2 (p10404530_112030_Linux-...
oracle linux 11gR2 x86-64 instant client with sqplus sqlldr imp exp
Oracle11gR2 CentOS7 静默安装,开机自启动,等等
oracle linux 6.4上安装部署 oracle RAC 11G R2,oracle linux上安装oracle是最简便的。
Linux oracle 11gR2安装数目及依赖包,分享给大家。Linux oracle 11gR2依赖包全套
Oracle11gR2 (p10404530_112030_Linux-x86-64_2of7.zip)文件分割成 2个压缩包: https://download.csdn.net/download/weixin_43800734/72501554 https://download.csdn.net/download/weixin_43800734/72510520 ...
Oracle11GR2-RAC+ASM-for-AIX6.1.4完全安装手册
关于R2无法exp出空表的方法。考虑到节省空间,oracle11g r2不给空表分配segment,具体办法见附件。