前几天从客户那里导出一个dmp文件,回到公司需要搭建一个环境,在使用imp导入数据库的时候,发现报ORA-1658 无法为表空间****的段创建initial区。
通过从网上搜索资料发现:
1、我的表空间大小是够的。
2、我新建了表空间的名字,客户那里的表空间叫hzjh,我这里改成了hzjh1。其他都是一样的。
希望遇到此类问题的朋友出来解决下!谢谢!

解决方案 »

  1.   

    增加数据文件到表空间?我的dmp文件才1.15g,我表空间给的是3G,难道还不够?希望ls解释。谢谢了,我是菜鸟。
      

  2.   


    -- 你的表空间大小是足够的,但是当你导入数据的时候,表空间会不断增长,而且看你是什么操作系统,
    -- 不同的操作系统,有数据文件的最大尺寸问题
    -- (如:Windows 32位的 FAT32格式的磁盘,文件的最大尺寸是2G,就算你磁盘有足够的空间,数据文件也设置成自动扩展啦,但是有操作系统的限制:最大文件尺寸是2G,所以当你这个表空间只有一个数据文件时,这个表空间的最大尺寸也只能是2G)-- 不知道我这样讲,楼主明白不?
      

  3.   

    我查看了日志记录,发现表空间才用了30%多,并且我导的时候导进去30张表,我同事导进去50张表才报“ORA-1658 无法为表空间****的段创建initial区”这个错误。
      

  4.   

    select BYTES from dba_free_space.
    然后 和 你 的 1.5g比较 下 
      

  5.   

    dmp文件是压缩 之后 的 数据 不 ?
      

  6.   

    压缩?你的意思是在exp的时候,使用compress=n??我是使用默认的。
      

  7.   

    -- 建议楼主一边导入,一边观察其相应的表空间的使用情况,就一清二楚啦!
    SELECT a.tablespace_name "表空间名",total 表空间大小,free 表空间剩余大小,
    (total-free) 表空间使用大小,
    ROUND((total-free)/total,4)*100 "使用率 %"
    FROM  (SELECT tablespace_name,SUM(bytes) free FROM DBA_FREE_SPACE
    GROUP BY tablespace_name ) a,
    (SELECT tablespace_name,SUM(bytes) total FROM DBA_DATA_FILES
    GROUP BY tablespace_name) b
    WHERE a.tablespace_name=b.tablespace_name;
      

  8.   

    -- 实务204 创建表时,报告错误“ORA-01658 : unable to create INITAL Extent for Segment in Tablespace EYGLE"-- 现象:
    -- 创建表时,发生ORA-01658错误,具体过程如下:
    SQL> CREATE TABLE A10
    (ID VARCHAR2(100), ch VARCHAR(1000), con clob)
    storage(initial 500M)
    TABLESPACE eygle;*
    第 1 行出现错误:
    ORA-01658: 无法为表空间 EYGLE 中的段创建 INITIAL 区-- 原因:
    -- 在创建表(索引)的时候,如果在表空间中无法找到一片连续的区域创建初始区(INITIAL Extent),将会产生ORA-0158错误。-- 方法:
    -- 方法一:减小INITIAL的值。
    -- 方法二:往表空间增加数据文件。ALTER TABLESPACE EYGLE ADD DATAFILE 'D:\oracle\product\10.2.0\oradata\sztyora\EYGLE_02.DBF' SIZE 2048M;-- 往表空间EYGLE中添加数据文件eygle_02.dbf,增加表空间的大小。
      

  9.   

    你的dmp文件都1.15g了,解压成表后,怎么也有10g左右了,当然不够
      

  10.   

    表空间已满 
    的加数据文件
    alter tablesapce tablespacename
    add datafile '......' size 加大点
      

  11.   

    2010年的帖子,我也来答一下:这个问题是由于你的建表语句中的initial 500M子句导致的。
    就算你只导入一个表,但是initial 1024G,你想想会如何?这的确是个蛋疼的问题……