oracle段延迟功能如果开启,新建空表就不会分配段,段是oracle中一个数据存储单位,如果一个新建的空表没有分配段,则exp导出时就不会被导出,因些需要关闭段延迟功能。
[oracle@oracle04 ~]$ sqlplus / as sysdba
SQL> alter system set deferred_segment_creation=false;
SQL> show parameter def;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean FALSE
由于延迟功能关闭是不会改变之前新建的空表的段分配,因此还需要对之前的表进行手动的段分配。
单个表
SQL> conn fx/fx
SQL> alter table ftest3 allocate extent;
select * from dba_segments t where t.SEGMENT_NAME = 'FTEST3';
批量
select 'alter table '|| a.table_name ||' allocate extent;' from user_tables a where a.table_name not in (select segment_name from user_segments where segment_type = 'TABLE');