Oracle导出警告“EXP-00003: 未找到段 (0,0) 的存储定义”解决

环境:CentOS7.4   Oracle11.2.0.4(搭建rac集群)spa

问题描述:在使用exp命令执行导出的时候,部分表提示“EXP-00003: 未找到段 (0,0) 的存储定义”警告。.net

问题缘由:该问题是由于导出的数据表为空表致使的。Oracle 11GR2当表无数据时,不分配segment,以节省空间,所以在用EXPORT导出时,空表不能导出。日志

解决方法:code

一、使用如下语句查找空表,把查询结果导出执行,强行修改segment值,而后再导出便可导出空表。blog

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

注意:语句查出来的不必定是所有的表(有可能有漏掉),若是有缺失能够根据导出日志执行如下alert语句便可。get

二、在相应的空表中插入一条记录再删除(或者rollback)。这样能够产生segment。导出时则可导出空表。io

三、设置deferred_segment_creation 参数。该参数值默认是TRUE,当改成FALSE时,不管是空表仍是非空表,都分配segment。table

alter system setdeferred_segment_creation=false scope=both;

注意:该值设置后对之前导入的空表不产生做用,仍不能导出,只能对后面新增的表产生做用。如需导出以前的空表,只能用前面两种办法。class

 

参考:https://blog.csdn.net/u013991521/article/details/52576473集群

相关文章
相关标签/搜索