解决方案 »

  1.   

    1、这两个表是不是分区表,分区表在创建时会额外申请一部分空间
    2、是否存在索引,索引也会占用很大空间的上面这两种在dmp中只记录了创建语句,在dmp中是不占空间的
      

  2.   

    我增加tables参数指定表分开导入过,
    SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
      D.TOT_GROOTTE_MB "表空间大小(M)",
      D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
      TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
      F.TOTAL_BYTES "空闲空间(M)",
      F.MAX_BYTES "最大块(M)"
      FROM (SELECT TABLESPACE_NAME,
      ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
      ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
      FROM SYS.DBA_FREE_SPACE
      GROUP BY TABLESPACE_NAME) F,
      (SELECT DD.TABLESPACE_NAME,
       ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
      FROM SYS.DBA_DATA_FILES DD
      GROUP BY DD.TABLESPACE_NAME) D
      WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
      ORDER BY 1;
    用上面的语句查表空间还有充足的空闲空间,
    alter database datafile '/opt/oracle/oradata/orcl/xxx.dbf' resize 15000M; 用这个语句将表空间扩大到15个G,还是导不进去。
    第一张表可以正常导入,第二张表导入卡死
    修改导入的第一张表表名,第二张表就可以导入
      

  3.   

    select a.tablespace_name ,count(1) 碎片量 
    from dba_free_space a,dba_tablespaces b
    where a.tablespace_name =b.tablespace_name
    and b.extent_management = 'LOCAL'
    group by a.tablespace_name
    order by 2
    有这个语句查询到表空间的碎片量过大达到1543,是否会造成这个问题