SQL> select * from v$version;BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for Solaris: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - ProductionSQL> SQL> alter tablespace rap add datafile '/dbdata4/ss/test02.dbf' size 30720m autoextend on;Tablespace altered.在客户端进行导入的时候,如下:/oradata2/fenqutable>% imp test1/test1@ZS file=test.dmpImport: Release 9.2.0.1.0 - Production on 星期五 12月 11 12:39:52 2009Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
连接到: Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
导出客户机使用UTF8字符集 (可能的字符集转换)
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将RAP的对象导入到 RAP
IMP-00017: 由于 ORACLE 的 1659 错误,以下的语句失败
 "CREATE TABLE "TEST" ("ID" NUMBER NOT NULL ENABLE, "BAD_TYPE" NUMBER(*,"
 "0), "FLAG" NUMBER(*,0), "EVENT_TYPE" VARCHAR2(255) NOT NULL ENABLE, "SERVIC"
 "E_ID" NUMBER NOT NULL ENABLE, "SERVICE_TYPE" VARCHAR2(255), "CREATED_T" DAT"
 "E, "START_T" DATE, "END_T" DATE, "ACCOUNT_ID" NUMBER, "CHARGE_ID" NUMBER NO"
 "T NULL ENABLE, "STATUS" NUMBER(*,0), "LOGIN" VARCHAR2(255), "DIAL_DOMAIN" V"
 "ARCHAR2(255), "CONTRACT_NO" VARCHAR2(255), "BILL_CYCLE_ID" NUMBER, "DOWN_TY"
 "PE" NUMBER(2, 0), "ICP_ACCOUNT_ID" NUMBER, "ITEMNAME" VARCHAR2(255), "CANCE"
 "L_T" DATE, "RAW_START_T" DATE, "RAW_END_T" DATE, "REMARK01" VARCHAR2(255), "
 ""REMARK02" NUMBER, "REMARK03" NUMBER(*,0))  PCTFREE 10 PCTUSED 40 INITRANS "
 "1 MAXTRANS 255 LOGGING TABLESPACE "RAP"
…… 语句很多,暂时省略了,然后就报错了:
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: unable to allocate MINEXTENTS beyond 72 in tablespace RAP  
成功终止导入,但出现警告。
/oradata2/fenqutable>%    出现这样的问题,我就使用alter tablespace rap add datafile 语句向表空间添加数据文件,如果文件很大就不会再报错,如果再遇到很大的数据文件就会还报错,现在我想问的是:既然创建表空间的时候,我设定了autoextend on了,并且磁盘空间有500多个G的空间,我想导入的总的数据文件的大小也不是非常大,最大的也就是300M,我不知道为什么还报错?

解决方案 »

  1.   

    alter tablespace rap add datafile '/dbdata4/ss/test02.dbf' SIZE 1000M  AUTOEXTEND ON NEXT 100M MAXSIZE 30720M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;imp test1/test1@ZS fromuser=test1 touser=test1 file=test.dmp log=test.log
      

  2.   

    http://www.itpub.net/thread-883921-1-1.html--ITPUB上的贴说是resize 一下  扩大点就行
      

  3.   


    不管是添加数据文件,还是修改数据文件的大小,我都尝试过,是能解决问题,但是我已经使用了autoextend on了,为什么不能自动的扩展,还需要添加数据文件或者修改数据文件的大小呢?
      

  4.   

    ORA-01659: unable to allocate MINEXTENTS beyond string in tablespace string 
    Cause: Failed to find sufficient contiguous space to allocate MINEXTENTS for the segment being created. Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the tablespace or retry with smaller value for MINEXTENTS, NEXT or PCTINCREASE 
    个人感觉可能是由于红色标注出来的那里 要连续的空间
    不然总不能在导入的时候一边导入 一边自动扩展吧?
    如果你要导入个100G的文件 自动扩展每次就算100M
    那你算算得扩展多少次
      

  5.   

        AUTOEXTEND 它应该有个默认值 value  如果现有的表空间+value还不够imp就会报ORA-01659