full = y 设置了没???

解决方案 »

  1.   

    11g 不是解决这个问题了么
    加个deferred_segment_creation 参数的设置
      

  2.   

    正如2楼所说:
    设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALUE 
    ------------------------------------ ----------- ------------------------------ 
    deferred_segment_creation            boolean     TRUE 
    SQL> alter system set deferred_segment_creation=false; 该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
      

  3.   

    问题:ORACLE 11G在用EXPORT导出时,空表不能导出。 
    原因:11G中有个新特性,当表无数据时,不分配segment,以节省空间  解决方法:  1、insert一行,再rollback就产生segment了。  该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。  2、设置deferred_segment_creation 参数  该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。  需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
                    如 需导出之前的空表,只能用第一种方法
      

  4.   

    为什么会有人认为exp是备分命令.你拿这个命令备分,你家的数据还有什么安全可言
      

  5.   

    先查询一下哪些表是空的:
    select table_name from user_tables where NUM_ROWS=0; 
      
    下面我们通过select 来生成修改语句:
    Sql代码 
    select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 
    执行上面查出来的那些sql,之后再exp
      

  6.   

    exp楼上都已经回答了,我就说说expdp把。
    露珠说expdp比较麻烦,但是其实并不麻烦啊,而且是数据泵速度很快的。
    先创建目录:
    create  directory directoryname as '路径';
    授权:
    grant  read,write on directoryname to username;
    通过命令进行导入导出:
    expdp username/password@databasename   directory=directoryname  dumpfile=expname.dmp