oracle 11g 新特性导致 空表不能导出的问题

最近用Oracle 11g的exp命令备份数据库,然后恢复,发现导出前表中还从没插入过数据的表并没有导出。以前用9i、10g的时候都没发现过类似问题,着实被坑了一把,google一查发现11g中有个新特性,当表无数据时,不分配segment以节省空间。为了使空表也能导出需要如下处理:

1) 用以下这句查找空表

select 'alter table '||table_name||' allocate extent;' from user_tables where segment_created='NO';

把查询结果导出,执行导出的语句

2) 然后再使用exp命令导出数据库即可

DEFERRED_SEGMENT_CREATION specifies the semantics of deferred segment creation. If set to true, then segments for tables and their dependent objects (LOBs, indexes) will not be created until the first row is inserted into the table.
这句话的意思是 DEFERRED_SEGMENT_CREATION 参数的作用是:创建表的时候延迟创建这个表相关的segment(包括lobs,indexes),直到第一次插入数据的时候才创建segment.补充说明:DEFERRED_SEGMENT_CREATION 参数从11.2.0.1引进,默认值为true;如果要使其恢复老版本功能,设置该参数为false.
show parameter DEFERRED_SEGMENT_CREATION;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28588633/viewspace-1258695/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28588633/viewspace-1258695/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值