您的位置:首页 > Web前端

DEFERRED_SEGMENT_CREATION参数

2014-09-28 09:07 176 查看
ENV:11.2.0.3单节点

最近需要做一个11g的历史库,数据传输是通过在源库创建Package通过DBLink将源库数据同步到历史库,

同一个库,10个schema,多张表,总数大概有1000多张。

当初采用每一个schema下expdp一个脚本只到表结构,然后scp dump文件到历史库再进行impdp;

一切完成后,发现共计有3个表没有,随后手工创建。

分析原因,检查导入导出脚本,没有发现异常。分析这3张表的源表有一个共性就是没有数据;

我觉得应该是11g哪个新功能限制的,果不其然,是DEFERRED_SEGMENT_CREATION参数惹的麻烦

这个参数官方文档描述如下:



 

这样做的好处,就是节省空间使用

解决办法:

(1)执行alter system set deferred_segment_creation=false这只对以后的表有效,对之前存在的表无用,所以最好在DB创建完成就把该参数调整为false。

(2)创建表的时候声明分配segment: create table t1 (id,vachar2(8)) SEGMENT CREATION IMMEDIATE;

(3)对于已经创建但是还没有Segment的表来说,可以执行alter table XXX allocate extent来使其创建出segment,当然也可以插入一条临时数据,使其分配Segment

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息