导出时没有报错,导入也没有报错,程序运行时发现表或视图不存在。
仔细查看导出日志,发现导出日志中根本就没有导出该表,而数据库管理工具又是存在的,经过反复尝试,该表始终不在导出日志里出现。
经查询得知,网络原文地址:http://blog.sina.com.cn/s/blog_6925c03c0101d9aw.html
11G中有个新特性,当表无数据时,不分配segment,以节省空间。
解决方法:设置deferred_segment_creation 参数,具体步骤如下。
步骤一:执行命令 alter system set deferred_segment_creation=false;
步骤二:执行命令 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
步骤三:把步骤二查询的结果导出,执行导出的语句。
说明:
需注意的是deferred_segment_creation值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,就需要执行步骤二、三。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《oracle导出数据库出现部分表丢失的情况》
发表评论